{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "pd.set_option('display.max_columns', None)\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1460 entries, 0 to 1459\n",
      "Data columns (total 81 columns):\n",
      "Id               1460 non-null int64\n",
      "MSSubClass       1460 non-null int64\n",
      "MSZoning         1460 non-null object\n",
      "LotFrontage      1201 non-null float64\n",
      "LotArea          1460 non-null int64\n",
      "Street           1460 non-null object\n",
      "Alley            91 non-null object\n",
      "LotShape         1460 non-null object\n",
      "LandContour      1460 non-null object\n",
      "Utilities        1460 non-null object\n",
      "LotConfig        1460 non-null object\n",
      "LandSlope        1460 non-null object\n",
      "Neighborhood     1460 non-null object\n",
      "Condition1       1460 non-null object\n",
      "Condition2       1460 non-null object\n",
      "BldgType         1460 non-null object\n",
      "HouseStyle       1460 non-null object\n",
      "OverallQual      1460 non-null int64\n",
      "OverallCond      1460 non-null int64\n",
      "YearBuilt        1460 non-null int64\n",
      "YearRemodAdd     1460 non-null int64\n",
      "RoofStyle        1460 non-null object\n",
      "RoofMatl         1460 non-null object\n",
      "Exterior1st      1460 non-null object\n",
      "Exterior2nd      1460 non-null object\n",
      "MasVnrType       1452 non-null object\n",
      "MasVnrArea       1452 non-null float64\n",
      "ExterQual        1460 non-null object\n",
      "ExterCond        1460 non-null object\n",
      "Foundation       1460 non-null object\n",
      "BsmtQual         1423 non-null object\n",
      "BsmtCond         1423 non-null object\n",
      "BsmtExposure     1422 non-null object\n",
      "BsmtFinType1     1423 non-null object\n",
      "BsmtFinSF1       1460 non-null int64\n",
      "BsmtFinType2     1422 non-null object\n",
      "BsmtFinSF2       1460 non-null int64\n",
      "BsmtUnfSF        1460 non-null int64\n",
      "TotalBsmtSF      1460 non-null int64\n",
      "Heating          1460 non-null object\n",
      "HeatingQC        1460 non-null object\n",
      "CentralAir       1460 non-null object\n",
      "Electrical       1459 non-null object\n",
      "1stFlrSF         1460 non-null int64\n",
      "2ndFlrSF         1460 non-null int64\n",
      "LowQualFinSF     1460 non-null int64\n",
      "GrLivArea        1460 non-null int64\n",
      "BsmtFullBath     1460 non-null int64\n",
      "BsmtHalfBath     1460 non-null int64\n",
      "FullBath         1460 non-null int64\n",
      "HalfBath         1460 non-null int64\n",
      "BedroomAbvGr     1460 non-null int64\n",
      "KitchenAbvGr     1460 non-null int64\n",
      "KitchenQual      1460 non-null object\n",
      "TotRmsAbvGrd     1460 non-null int64\n",
      "Functional       1460 non-null object\n",
      "Fireplaces       1460 non-null int64\n",
      "FireplaceQu      770 non-null object\n",
      "GarageType       1379 non-null object\n",
      "GarageYrBlt      1379 non-null float64\n",
      "GarageFinish     1379 non-null object\n",
      "GarageCars       1460 non-null int64\n",
      "GarageArea       1460 non-null int64\n",
      "GarageQual       1379 non-null object\n",
      "GarageCond       1379 non-null object\n",
      "PavedDrive       1460 non-null object\n",
      "WoodDeckSF       1460 non-null int64\n",
      "OpenPorchSF      1460 non-null int64\n",
      "EnclosedPorch    1460 non-null int64\n",
      "3SsnPorch        1460 non-null int64\n",
      "ScreenPorch      1460 non-null int64\n",
      "PoolArea         1460 non-null int64\n",
      "PoolQC           7 non-null object\n",
      "Fence            281 non-null object\n",
      "MiscFeature      54 non-null object\n",
      "MiscVal          1460 non-null int64\n",
      "MoSold           1460 non-null int64\n",
      "YrSold           1460 non-null int64\n",
      "SaleType         1460 non-null object\n",
      "SaleCondition    1460 non-null object\n",
      "SalePrice        1460 non-null int64\n",
      "dtypes: float64(3), int64(35), object(43)\n",
      "memory usage: 924.0+ KB\n"
     ]
    }
   ],
   "source": [
    "# Loading training data\n",
    "training = pd.read_csv(\"data/kaggle-house-prices/train.csv\")\n",
    "training.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Id</th>\n",
       "      <th>MSSubClass</th>\n",
       "      <th>MSZoning</th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>Street</th>\n",
       "      <th>Alley</th>\n",
       "      <th>LotShape</th>\n",
       "      <th>LandContour</th>\n",
       "      <th>Utilities</th>\n",
       "      <th>LotConfig</th>\n",
       "      <th>LandSlope</th>\n",
       "      <th>Neighborhood</th>\n",
       "      <th>Condition1</th>\n",
       "      <th>Condition2</th>\n",
       "      <th>BldgType</th>\n",
       "      <th>HouseStyle</th>\n",
       "      <th>OverallQual</th>\n",
       "      <th>OverallCond</th>\n",
       "      <th>YearBuilt</th>\n",
       "      <th>YearRemodAdd</th>\n",
       "      <th>RoofStyle</th>\n",
       "      <th>RoofMatl</th>\n",
       "      <th>Exterior1st</th>\n",
       "      <th>Exterior2nd</th>\n",
       "      <th>MasVnrType</th>\n",
       "      <th>MasVnrArea</th>\n",
       "      <th>ExterQual</th>\n",
       "      <th>ExterCond</th>\n",
       "      <th>Foundation</th>\n",
       "      <th>BsmtQual</th>\n",
       "      <th>BsmtCond</th>\n",
       "      <th>BsmtExposure</th>\n",
       "      <th>BsmtFinType1</th>\n",
       "      <th>BsmtFinSF1</th>\n",
       "      <th>BsmtFinType2</th>\n",
       "      <th>BsmtFinSF2</th>\n",
       "      <th>BsmtUnfSF</th>\n",
       "      <th>TotalBsmtSF</th>\n",
       "      <th>Heating</th>\n",
       "      <th>HeatingQC</th>\n",
       "      <th>CentralAir</th>\n",
       "      <th>Electrical</th>\n",
       "      <th>1stFlrSF</th>\n",
       "      <th>2ndFlrSF</th>\n",
       "      <th>LowQualFinSF</th>\n",
       "      <th>GrLivArea</th>\n",
       "      <th>BsmtFullBath</th>\n",
       "      <th>BsmtHalfBath</th>\n",
       "      <th>FullBath</th>\n",
       "      <th>HalfBath</th>\n",
       "      <th>BedroomAbvGr</th>\n",
       "      <th>KitchenAbvGr</th>\n",
       "      <th>KitchenQual</th>\n",
       "      <th>TotRmsAbvGrd</th>\n",
       "      <th>Functional</th>\n",
       "      <th>Fireplaces</th>\n",
       "      <th>FireplaceQu</th>\n",
       "      <th>GarageType</th>\n",
       "      <th>GarageYrBlt</th>\n",
       "      <th>GarageFinish</th>\n",
       "      <th>GarageCars</th>\n",
       "      <th>GarageArea</th>\n",
       "      <th>GarageQual</th>\n",
       "      <th>GarageCond</th>\n",
       "      <th>PavedDrive</th>\n",
       "      <th>WoodDeckSF</th>\n",
       "      <th>OpenPorchSF</th>\n",
       "      <th>EnclosedPorch</th>\n",
       "      <th>3SsnPorch</th>\n",
       "      <th>ScreenPorch</th>\n",
       "      <th>PoolArea</th>\n",
       "      <th>PoolQC</th>\n",
       "      <th>Fence</th>\n",
       "      <th>MiscFeature</th>\n",
       "      <th>MiscVal</th>\n",
       "      <th>MoSold</th>\n",
       "      <th>YrSold</th>\n",
       "      <th>SaleType</th>\n",
       "      <th>SaleCondition</th>\n",
       "      <th>SalePrice</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1328</th>\n",
       "      <td>1329</td>\n",
       "      <td>50</td>\n",
       "      <td>RM</td>\n",
       "      <td>60.0</td>\n",
       "      <td>10440</td>\n",
       "      <td>Pave</td>\n",
       "      <td>Grvl</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>Corner</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>OldTown</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>1.5Fin</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>1920</td>\n",
       "      <td>1950</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>BrkFace</td>\n",
       "      <td>Wd Sdng</td>\n",
       "      <td>None</td>\n",
       "      <td>0.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>Gd</td>\n",
       "      <td>BrkTil</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>No</td>\n",
       "      <td>LwQ</td>\n",
       "      <td>493</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0</td>\n",
       "      <td>1017</td>\n",
       "      <td>1510</td>\n",
       "      <td>GasW</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>1584</td>\n",
       "      <td>1208</td>\n",
       "      <td>0</td>\n",
       "      <td>2792</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>8</td>\n",
       "      <td>Mod</td>\n",
       "      <td>2</td>\n",
       "      <td>TA</td>\n",
       "      <td>Detchd</td>\n",
       "      <td>1920.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2</td>\n",
       "      <td>520</td>\n",
       "      <td>Fa</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>547</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>480</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>MnPrv</td>\n",
       "      <td>Shed</td>\n",
       "      <td>1150</td>\n",
       "      <td>6</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>256000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>112</th>\n",
       "      <td>113</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>77.0</td>\n",
       "      <td>9965</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>2007</td>\n",
       "      <td>2007</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>Stone</td>\n",
       "      <td>220.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Ex</td>\n",
       "      <td>TA</td>\n",
       "      <td>Av</td>\n",
       "      <td>GLQ</td>\n",
       "      <td>984</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0</td>\n",
       "      <td>280</td>\n",
       "      <td>1264</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>1282</td>\n",
       "      <td>1414</td>\n",
       "      <td>0</td>\n",
       "      <td>2696</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>Ex</td>\n",
       "      <td>10</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>BuiltIn</td>\n",
       "      <td>2007.0</td>\n",
       "      <td>Fin</td>\n",
       "      <td>3</td>\n",
       "      <td>792</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>120</td>\n",
       "      <td>184</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>168</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "      <td>2007</td>\n",
       "      <td>New</td>\n",
       "      <td>Partial</td>\n",
       "      <td>383970</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1057</th>\n",
       "      <td>1058</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>NaN</td>\n",
       "      <td>29959</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR2</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>FR2</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>NoRidge</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "      <td>1994</td>\n",
       "      <td>1994</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>HdBoard</td>\n",
       "      <td>HdBoard</td>\n",
       "      <td>None</td>\n",
       "      <td>0.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>No</td>\n",
       "      <td>GLQ</td>\n",
       "      <td>595</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0</td>\n",
       "      <td>378</td>\n",
       "      <td>973</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>979</td>\n",
       "      <td>871</td>\n",
       "      <td>0</td>\n",
       "      <td>1850</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>7</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>BuiltIn</td>\n",
       "      <td>1994.0</td>\n",
       "      <td>Fin</td>\n",
       "      <td>2</td>\n",
       "      <td>467</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>168</td>\n",
       "      <td>98</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2009</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>248000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>825</th>\n",
       "      <td>826</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>114.0</td>\n",
       "      <td>14803</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>NridgHt</td>\n",
       "      <td>PosN</td>\n",
       "      <td>PosN</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>1Story</td>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>2007</td>\n",
       "      <td>2008</td>\n",
       "      <td>Hip</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>CemntBd</td>\n",
       "      <td>CmentBd</td>\n",
       "      <td>BrkFace</td>\n",
       "      <td>816.0</td>\n",
       "      <td>Ex</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Ex</td>\n",
       "      <td>TA</td>\n",
       "      <td>Av</td>\n",
       "      <td>GLQ</td>\n",
       "      <td>1636</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0</td>\n",
       "      <td>442</td>\n",
       "      <td>2078</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>2084</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2084</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>Ex</td>\n",
       "      <td>7</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>2007.0</td>\n",
       "      <td>Fin</td>\n",
       "      <td>3</td>\n",
       "      <td>1220</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>188</td>\n",
       "      <td>45</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>2008</td>\n",
       "      <td>New</td>\n",
       "      <td>Partial</td>\n",
       "      <td>385000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1234</th>\n",
       "      <td>1235</td>\n",
       "      <td>70</td>\n",
       "      <td>RH</td>\n",
       "      <td>55.0</td>\n",
       "      <td>8525</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Bnk</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>1911</td>\n",
       "      <td>1950</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>MetalSd</td>\n",
       "      <td>MetalSd</td>\n",
       "      <td>None</td>\n",
       "      <td>0.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Av</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0</td>\n",
       "      <td>940</td>\n",
       "      <td>940</td>\n",
       "      <td>GasA</td>\n",
       "      <td>TA</td>\n",
       "      <td>N</td>\n",
       "      <td>FuseA</td>\n",
       "      <td>1024</td>\n",
       "      <td>940</td>\n",
       "      <td>0</td>\n",
       "      <td>1964</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>7</td>\n",
       "      <td>Typ</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>N</td>\n",
       "      <td>0</td>\n",
       "      <td>192</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>11</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Abnorml</td>\n",
       "      <td>130000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1037</th>\n",
       "      <td>1038</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>NaN</td>\n",
       "      <td>9240</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>8</td>\n",
       "      <td>5</td>\n",
       "      <td>2001</td>\n",
       "      <td>2002</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>BrkFace</td>\n",
       "      <td>396.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>No</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0</td>\n",
       "      <td>1055</td>\n",
       "      <td>1055</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>1055</td>\n",
       "      <td>1208</td>\n",
       "      <td>0</td>\n",
       "      <td>2263</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>7</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>BuiltIn</td>\n",
       "      <td>2001.0</td>\n",
       "      <td>Fin</td>\n",
       "      <td>2</td>\n",
       "      <td>905</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>45</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>189</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>287000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1381</th>\n",
       "      <td>1382</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12925</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>Corner</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>NAmes</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>1Story</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>1970</td>\n",
       "      <td>1970</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>BrkFace</td>\n",
       "      <td>Plywood</td>\n",
       "      <td>None</td>\n",
       "      <td>0.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>CBlock</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Mn</td>\n",
       "      <td>BLQ</td>\n",
       "      <td>865</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0</td>\n",
       "      <td>340</td>\n",
       "      <td>1205</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>2117</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2117</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>7</td>\n",
       "      <td>Typ</td>\n",
       "      <td>2</td>\n",
       "      <td>Gd</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>1970.0</td>\n",
       "      <td>Fin</td>\n",
       "      <td>2</td>\n",
       "      <td>550</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>42</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>237500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>628</th>\n",
       "      <td>629</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>70.0</td>\n",
       "      <td>11606</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>HLS</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Sev</td>\n",
       "      <td>NAmes</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "      <td>1969</td>\n",
       "      <td>1969</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>Plywood</td>\n",
       "      <td>Plywood</td>\n",
       "      <td>BrkFace</td>\n",
       "      <td>192.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>Av</td>\n",
       "      <td>Rec</td>\n",
       "      <td>650</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0</td>\n",
       "      <td>390</td>\n",
       "      <td>1040</td>\n",
       "      <td>GasA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>1040</td>\n",
       "      <td>1040</td>\n",
       "      <td>0</td>\n",
       "      <td>2080</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>Fa</td>\n",
       "      <td>9</td>\n",
       "      <td>Typ</td>\n",
       "      <td>2</td>\n",
       "      <td>TA</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>1969.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2</td>\n",
       "      <td>504</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>335</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "      <td>2007</td>\n",
       "      <td>WD</td>\n",
       "      <td>Family</td>\n",
       "      <td>135000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>75.0</td>\n",
       "      <td>10084</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>Somerst</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>1Story</td>\n",
       "      <td>8</td>\n",
       "      <td>5</td>\n",
       "      <td>2004</td>\n",
       "      <td>2005</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>Stone</td>\n",
       "      <td>186.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Ex</td>\n",
       "      <td>TA</td>\n",
       "      <td>Av</td>\n",
       "      <td>GLQ</td>\n",
       "      <td>1369</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0</td>\n",
       "      <td>317</td>\n",
       "      <td>1686</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>1694</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1694</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>7</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>2004.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>2</td>\n",
       "      <td>636</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>255</td>\n",
       "      <td>57</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>2007</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>307000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>868</th>\n",
       "      <td>869</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>NaN</td>\n",
       "      <td>14762</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR2</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>Corner</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>Gilbert</td>\n",
       "      <td>Feedr</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>1948</td>\n",
       "      <td>1950</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>Plywood</td>\n",
       "      <td>Plywood</td>\n",
       "      <td>None</td>\n",
       "      <td>0.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Slab</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Gd</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>1547</td>\n",
       "      <td>720</td>\n",
       "      <td>53</td>\n",
       "      <td>2320</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>7</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>1979.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2</td>\n",
       "      <td>672</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>P</td>\n",
       "      <td>120</td>\n",
       "      <td>144</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>2006</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>169000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Id  MSSubClass MSZoning  LotFrontage  LotArea Street Alley LotShape  \\\n",
       "1328  1329          50       RM         60.0    10440   Pave  Grvl      Reg   \n",
       "112    113          60       RL         77.0     9965   Pave   NaN      Reg   \n",
       "1057  1058          60       RL          NaN    29959   Pave   NaN      IR2   \n",
       "825    826          20       RL        114.0    14803   Pave   NaN      Reg   \n",
       "1234  1235          70       RH         55.0     8525   Pave   NaN      Reg   \n",
       "1037  1038          60       RL          NaN     9240   Pave   NaN      Reg   \n",
       "1381  1382          20       RL          NaN    12925   Pave   NaN      IR1   \n",
       "628    629          60       RL         70.0    11606   Pave   NaN      IR1   \n",
       "6        7          20       RL         75.0    10084   Pave   NaN      Reg   \n",
       "868    869          60       RL          NaN    14762   Pave   NaN      IR2   \n",
       "\n",
       "     LandContour Utilities LotConfig LandSlope Neighborhood Condition1  \\\n",
       "1328         Lvl    AllPub    Corner       Gtl      OldTown       Norm   \n",
       "112          Lvl    AllPub    Inside       Gtl      CollgCr       Norm   \n",
       "1057         Lvl    AllPub       FR2       Gtl      NoRidge       Norm   \n",
       "825          Lvl    AllPub    Inside       Gtl      NridgHt       PosN   \n",
       "1234         Bnk    AllPub    Inside       Gtl        SWISU       Norm   \n",
       "1037         Lvl    AllPub    Inside       Gtl      CollgCr       Norm   \n",
       "1381         Lvl    AllPub    Corner       Gtl        NAmes       Norm   \n",
       "628          HLS    AllPub    Inside       Sev        NAmes       Norm   \n",
       "6            Lvl    AllPub    Inside       Gtl      Somerst       Norm   \n",
       "868          Lvl    AllPub    Corner       Gtl      Gilbert      Feedr   \n",
       "\n",
       "     Condition2 BldgType HouseStyle  OverallQual  OverallCond  YearBuilt  \\\n",
       "1328       Norm     1Fam     1.5Fin            6            7       1920   \n",
       "112        Norm     1Fam     2Story            7            5       2007   \n",
       "1057       Norm     1Fam     2Story            7            6       1994   \n",
       "825        PosN     1Fam     1Story           10            5       2007   \n",
       "1234       Norm     1Fam     2Story            5            6       1911   \n",
       "1037       Norm     1Fam     2Story            8            5       2001   \n",
       "1381       Norm     1Fam     1Story            6            7       1970   \n",
       "628        Norm     1Fam     2Story            5            5       1969   \n",
       "6          Norm     1Fam     1Story            8            5       2004   \n",
       "868        Norm     1Fam     2Story            5            6       1948   \n",
       "\n",
       "      YearRemodAdd RoofStyle RoofMatl Exterior1st Exterior2nd MasVnrType  \\\n",
       "1328          1950     Gable  CompShg     BrkFace     Wd Sdng       None   \n",
       "112           2007     Gable  CompShg     VinylSd     VinylSd      Stone   \n",
       "1057          1994     Gable  CompShg     HdBoard     HdBoard       None   \n",
       "825           2008       Hip  CompShg     CemntBd     CmentBd    BrkFace   \n",
       "1234          1950     Gable  CompShg     MetalSd     MetalSd       None   \n",
       "1037          2002     Gable  CompShg     VinylSd     VinylSd    BrkFace   \n",
       "1381          1970     Gable  CompShg     BrkFace     Plywood       None   \n",
       "628           1969     Gable  CompShg     Plywood     Plywood    BrkFace   \n",
       "6             2005     Gable  CompShg     VinylSd     VinylSd      Stone   \n",
       "868           1950     Gable  CompShg     Plywood     Plywood       None   \n",
       "\n",
       "      MasVnrArea ExterQual ExterCond Foundation BsmtQual BsmtCond  \\\n",
       "1328         0.0        Gd        Gd     BrkTil       Gd       TA   \n",
       "112        220.0        Gd        TA      PConc       Ex       TA   \n",
       "1057         0.0        Gd        TA      PConc       Gd       TA   \n",
       "825        816.0        Ex        TA      PConc       Ex       TA   \n",
       "1234         0.0        TA        TA      PConc       TA       TA   \n",
       "1037       396.0        Gd        TA      PConc       Gd       TA   \n",
       "1381         0.0        TA        TA     CBlock       TA       TA   \n",
       "628        192.0        TA        TA      PConc       Gd       TA   \n",
       "6          186.0        Gd        TA      PConc       Ex       TA   \n",
       "868          0.0        TA        TA       Slab      NaN      NaN   \n",
       "\n",
       "     BsmtExposure BsmtFinType1  BsmtFinSF1 BsmtFinType2  BsmtFinSF2  \\\n",
       "1328           No          LwQ         493          Unf           0   \n",
       "112            Av          GLQ         984          Unf           0   \n",
       "1057           No          GLQ         595          Unf           0   \n",
       "825            Av          GLQ        1636          Unf           0   \n",
       "1234           Av          Unf           0          Unf           0   \n",
       "1037           No          Unf           0          Unf           0   \n",
       "1381           Mn          BLQ         865          Unf           0   \n",
       "628            Av          Rec         650          Unf           0   \n",
       "6              Av          GLQ        1369          Unf           0   \n",
       "868           NaN          NaN           0          NaN           0   \n",
       "\n",
       "      BsmtUnfSF  TotalBsmtSF Heating HeatingQC CentralAir Electrical  \\\n",
       "1328       1017         1510    GasW        Ex          Y      SBrkr   \n",
       "112         280         1264    GasA        Ex          Y      SBrkr   \n",
       "1057        378          973    GasA        Ex          Y      SBrkr   \n",
       "825         442         2078    GasA        Ex          Y      SBrkr   \n",
       "1234        940          940    GasA        TA          N      FuseA   \n",
       "1037       1055         1055    GasA        Ex          Y      SBrkr   \n",
       "1381        340         1205    GasA        Ex          Y      SBrkr   \n",
       "628         390         1040    GasA        TA          Y      SBrkr   \n",
       "6           317         1686    GasA        Ex          Y      SBrkr   \n",
       "868           0            0    GasA        Gd          Y      SBrkr   \n",
       "\n",
       "      1stFlrSF  2ndFlrSF  LowQualFinSF  GrLivArea  BsmtFullBath  BsmtHalfBath  \\\n",
       "1328      1584      1208             0       2792             0             0   \n",
       "112       1282      1414             0       2696             1             0   \n",
       "1057       979       871             0       1850             0             0   \n",
       "825       2084         0             0       2084             1             0   \n",
       "1234      1024       940             0       1964             0             0   \n",
       "1037      1055      1208             0       2263             0             0   \n",
       "1381      2117         0             0       2117             0             0   \n",
       "628       1040      1040             0       2080             0             1   \n",
       "6         1694         0             0       1694             1             0   \n",
       "868       1547       720            53       2320             0             0   \n",
       "\n",
       "      FullBath  HalfBath  BedroomAbvGr  KitchenAbvGr KitchenQual  \\\n",
       "1328         2         0             5             1          TA   \n",
       "112          2         1             4             1          Ex   \n",
       "1057         2         1             3             1          Gd   \n",
       "825          2         0             2             1          Ex   \n",
       "1234         1         1             4             1          TA   \n",
       "1037         2         1             3             1          Gd   \n",
       "1381         2         1             4             1          TA   \n",
       "628          1         2             5             1          Fa   \n",
       "6            2         0             3             1          Gd   \n",
       "868          2         0             2             1          TA   \n",
       "\n",
       "      TotRmsAbvGrd Functional  Fireplaces FireplaceQu GarageType  GarageYrBlt  \\\n",
       "1328             8        Mod           2          TA     Detchd       1920.0   \n",
       "112             10        Typ           1          Gd    BuiltIn       2007.0   \n",
       "1057             7        Typ           1          Gd    BuiltIn       1994.0   \n",
       "825              7        Typ           1          Gd     Attchd       2007.0   \n",
       "1234             7        Typ           0         NaN        NaN          NaN   \n",
       "1037             7        Typ           1          TA    BuiltIn       2001.0   \n",
       "1381             7        Typ           2          Gd     Attchd       1970.0   \n",
       "628              9        Typ           2          TA     Attchd       1969.0   \n",
       "6                7        Typ           1          Gd     Attchd       2004.0   \n",
       "868              7        Typ           1          TA     Attchd       1979.0   \n",
       "\n",
       "     GarageFinish  GarageCars  GarageArea GarageQual GarageCond PavedDrive  \\\n",
       "1328          Unf           2         520         Fa         TA          Y   \n",
       "112           Fin           3         792         TA         TA          Y   \n",
       "1057          Fin           2         467         TA         TA          Y   \n",
       "825           Fin           3        1220         TA         TA          Y   \n",
       "1234          NaN           0           0        NaN        NaN          N   \n",
       "1037          Fin           2         905         TA         TA          Y   \n",
       "1381          Fin           2         550         TA         TA          Y   \n",
       "628           Unf           2         504         TA         TA          Y   \n",
       "6             RFn           2         636         TA         TA          Y   \n",
       "868           Unf           2         672         TA         TA          P   \n",
       "\n",
       "      WoodDeckSF  OpenPorchSF  EnclosedPorch  3SsnPorch  ScreenPorch  \\\n",
       "1328           0          547              0          0          480   \n",
       "112          120          184              0          0          168   \n",
       "1057         168           98              0          0            0   \n",
       "825          188           45              0          0            0   \n",
       "1234           0          192              0          0            0   \n",
       "1037           0           45              0          0          189   \n",
       "1381           0           42              0          0            0   \n",
       "628          335            0              0          0            0   \n",
       "6            255           57              0          0            0   \n",
       "868          120          144              0          0            0   \n",
       "\n",
       "      PoolArea PoolQC  Fence MiscFeature  MiscVal  MoSold  YrSold SaleType  \\\n",
       "1328         0    NaN  MnPrv        Shed     1150       6    2008       WD   \n",
       "112          0    NaN    NaN         NaN        0      10    2007      New   \n",
       "1057         0    NaN    NaN         NaN        0       1    2009       WD   \n",
       "825          0    NaN    NaN         NaN        0       6    2008      New   \n",
       "1234         0    NaN    NaN         NaN        0      11    2008       WD   \n",
       "1037         0    NaN    NaN         NaN        0       9    2008       WD   \n",
       "1381         0    NaN    NaN         NaN        0       5    2008       WD   \n",
       "628          0    NaN    NaN         NaN        0       9    2007       WD   \n",
       "6            0    NaN    NaN         NaN        0       8    2007       WD   \n",
       "868          0    NaN    NaN         NaN        0       5    2006       WD   \n",
       "\n",
       "     SaleCondition  SalePrice  \n",
       "1328        Normal     256000  \n",
       "112        Partial     383970  \n",
       "1057        Normal     248000  \n",
       "825        Partial     385000  \n",
       "1234       Abnorml     130000  \n",
       "1037        Normal     287000  \n",
       "1381        Normal     237500  \n",
       "628         Family     135000  \n",
       "6           Normal     307000  \n",
       "868         Normal     169000  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "training.sample(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "SalesPrice = training.SalePrice"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1459 entries, 0 to 1458\n",
      "Data columns (total 80 columns):\n",
      "Id               1459 non-null int64\n",
      "MSSubClass       1459 non-null int64\n",
      "MSZoning         1455 non-null object\n",
      "LotFrontage      1232 non-null float64\n",
      "LotArea          1459 non-null int64\n",
      "Street           1459 non-null object\n",
      "Alley            107 non-null object\n",
      "LotShape         1459 non-null object\n",
      "LandContour      1459 non-null object\n",
      "Utilities        1457 non-null object\n",
      "LotConfig        1459 non-null object\n",
      "LandSlope        1459 non-null object\n",
      "Neighborhood     1459 non-null object\n",
      "Condition1       1459 non-null object\n",
      "Condition2       1459 non-null object\n",
      "BldgType         1459 non-null object\n",
      "HouseStyle       1459 non-null object\n",
      "OverallQual      1459 non-null int64\n",
      "OverallCond      1459 non-null int64\n",
      "YearBuilt        1459 non-null int64\n",
      "YearRemodAdd     1459 non-null int64\n",
      "RoofStyle        1459 non-null object\n",
      "RoofMatl         1459 non-null object\n",
      "Exterior1st      1458 non-null object\n",
      "Exterior2nd      1458 non-null object\n",
      "MasVnrType       1443 non-null object\n",
      "MasVnrArea       1444 non-null float64\n",
      "ExterQual        1459 non-null object\n",
      "ExterCond        1459 non-null object\n",
      "Foundation       1459 non-null object\n",
      "BsmtQual         1415 non-null object\n",
      "BsmtCond         1414 non-null object\n",
      "BsmtExposure     1415 non-null object\n",
      "BsmtFinType1     1417 non-null object\n",
      "BsmtFinSF1       1458 non-null float64\n",
      "BsmtFinType2     1417 non-null object\n",
      "BsmtFinSF2       1458 non-null float64\n",
      "BsmtUnfSF        1458 non-null float64\n",
      "TotalBsmtSF      1458 non-null float64\n",
      "Heating          1459 non-null object\n",
      "HeatingQC        1459 non-null object\n",
      "CentralAir       1459 non-null object\n",
      "Electrical       1459 non-null object\n",
      "1stFlrSF         1459 non-null int64\n",
      "2ndFlrSF         1459 non-null int64\n",
      "LowQualFinSF     1459 non-null int64\n",
      "GrLivArea        1459 non-null int64\n",
      "BsmtFullBath     1457 non-null float64\n",
      "BsmtHalfBath     1457 non-null float64\n",
      "FullBath         1459 non-null int64\n",
      "HalfBath         1459 non-null int64\n",
      "BedroomAbvGr     1459 non-null int64\n",
      "KitchenAbvGr     1459 non-null int64\n",
      "KitchenQual      1458 non-null object\n",
      "TotRmsAbvGrd     1459 non-null int64\n",
      "Functional       1457 non-null object\n",
      "Fireplaces       1459 non-null int64\n",
      "FireplaceQu      729 non-null object\n",
      "GarageType       1383 non-null object\n",
      "GarageYrBlt      1381 non-null float64\n",
      "GarageFinish     1381 non-null object\n",
      "GarageCars       1458 non-null float64\n",
      "GarageArea       1458 non-null float64\n",
      "GarageQual       1381 non-null object\n",
      "GarageCond       1381 non-null object\n",
      "PavedDrive       1459 non-null object\n",
      "WoodDeckSF       1459 non-null int64\n",
      "OpenPorchSF      1459 non-null int64\n",
      "EnclosedPorch    1459 non-null int64\n",
      "3SsnPorch        1459 non-null int64\n",
      "ScreenPorch      1459 non-null int64\n",
      "PoolArea         1459 non-null int64\n",
      "PoolQC           3 non-null object\n",
      "Fence            290 non-null object\n",
      "MiscFeature      51 non-null object\n",
      "MiscVal          1459 non-null int64\n",
      "MoSold           1459 non-null int64\n",
      "YrSold           1459 non-null int64\n",
      "SaleType         1458 non-null object\n",
      "SaleCondition    1459 non-null object\n",
      "dtypes: float64(11), int64(26), object(43)\n",
      "memory usage: 912.0+ KB\n"
     ]
    }
   ],
   "source": [
    "# Loading testing data\n",
    "testing = pd.read_csv(\"data/kaggle-house-prices/test.csv\")\n",
    "testing.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((1460, 81), (1459, 80))"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "training.shape, testing.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2919 entries, 0 to 2918\n",
      "Data columns (total 80 columns):\n",
      "Id               2919 non-null int64\n",
      "MSSubClass       2919 non-null int64\n",
      "MSZoning         2915 non-null object\n",
      "LotFrontage      2433 non-null float64\n",
      "LotArea          2919 non-null int64\n",
      "Street           2919 non-null object\n",
      "Alley            198 non-null object\n",
      "LotShape         2919 non-null object\n",
      "LandContour      2919 non-null object\n",
      "Utilities        2917 non-null object\n",
      "LotConfig        2919 non-null object\n",
      "LandSlope        2919 non-null object\n",
      "Neighborhood     2919 non-null object\n",
      "Condition1       2919 non-null object\n",
      "Condition2       2919 non-null object\n",
      "BldgType         2919 non-null object\n",
      "HouseStyle       2919 non-null object\n",
      "OverallQual      2919 non-null int64\n",
      "OverallCond      2919 non-null int64\n",
      "YearBuilt        2919 non-null int64\n",
      "YearRemodAdd     2919 non-null int64\n",
      "RoofStyle        2919 non-null object\n",
      "RoofMatl         2919 non-null object\n",
      "Exterior1st      2918 non-null object\n",
      "Exterior2nd      2918 non-null object\n",
      "MasVnrType       2895 non-null object\n",
      "MasVnrArea       2896 non-null float64\n",
      "ExterQual        2919 non-null object\n",
      "ExterCond        2919 non-null object\n",
      "Foundation       2919 non-null object\n",
      "BsmtQual         2838 non-null object\n",
      "BsmtCond         2837 non-null object\n",
      "BsmtExposure     2837 non-null object\n",
      "BsmtFinType1     2840 non-null object\n",
      "BsmtFinSF1       2918 non-null float64\n",
      "BsmtFinType2     2839 non-null object\n",
      "BsmtFinSF2       2918 non-null float64\n",
      "BsmtUnfSF        2918 non-null float64\n",
      "TotalBsmtSF      2918 non-null float64\n",
      "Heating          2919 non-null object\n",
      "HeatingQC        2919 non-null object\n",
      "CentralAir       2919 non-null object\n",
      "Electrical       2918 non-null object\n",
      "1stFlrSF         2919 non-null int64\n",
      "2ndFlrSF         2919 non-null int64\n",
      "LowQualFinSF     2919 non-null int64\n",
      "GrLivArea        2919 non-null int64\n",
      "BsmtFullBath     2917 non-null float64\n",
      "BsmtHalfBath     2917 non-null float64\n",
      "FullBath         2919 non-null int64\n",
      "HalfBath         2919 non-null int64\n",
      "BedroomAbvGr     2919 non-null int64\n",
      "KitchenAbvGr     2919 non-null int64\n",
      "KitchenQual      2918 non-null object\n",
      "TotRmsAbvGrd     2919 non-null int64\n",
      "Functional       2917 non-null object\n",
      "Fireplaces       2919 non-null int64\n",
      "FireplaceQu      1499 non-null object\n",
      "GarageType       2762 non-null object\n",
      "GarageYrBlt      2760 non-null float64\n",
      "GarageFinish     2760 non-null object\n",
      "GarageCars       2918 non-null float64\n",
      "GarageArea       2918 non-null float64\n",
      "GarageQual       2760 non-null object\n",
      "GarageCond       2760 non-null object\n",
      "PavedDrive       2919 non-null object\n",
      "WoodDeckSF       2919 non-null int64\n",
      "OpenPorchSF      2919 non-null int64\n",
      "EnclosedPorch    2919 non-null int64\n",
      "3SsnPorch        2919 non-null int64\n",
      "ScreenPorch      2919 non-null int64\n",
      "PoolArea         2919 non-null int64\n",
      "PoolQC           10 non-null object\n",
      "Fence            571 non-null object\n",
      "MiscFeature      105 non-null object\n",
      "MiscVal          2919 non-null int64\n",
      "MoSold           2919 non-null int64\n",
      "YrSold           2919 non-null int64\n",
      "SaleType         2918 non-null object\n",
      "SaleCondition    2919 non-null object\n",
      "dtypes: float64(11), int64(26), object(43)\n",
      "memory usage: 1.8+ MB\n"
     ]
    }
   ],
   "source": [
    "# Combining training and testing data into a single dataframe\n",
    "df = pd.concat([training.iloc[:, 0:80], testing], ignore_index = True)\n",
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training:  (1460, 81)\n",
      "Testing:  (1459, 80)\n",
      "Combined:  (2919, 80)\n"
     ]
    }
   ],
   "source": [
    "print(\"Training: \", training.shape)\n",
    "print(\"Testing: \", testing.shape)\n",
    "print(\"Combined: \", df.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Loaded both datasets and combined them into a single dataset for data preprocessing. When we are ready for modeling prepearion, we will split them into 2 datasets.\n",
    "\n",
    "Amount of NA values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0598021582733813"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.isnull().sum().sum() / (df.shape[0] * df.shape[1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Close 6% of data points across entire dataset is NA. Find out which columns have null in them"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  34\n",
      "\n",
      "Missing values per column:\n",
      "PoolQC          2909\n",
      "MiscFeature     2814\n",
      "Alley           2721\n",
      "Fence           2348\n",
      "FireplaceQu     1420\n",
      "LotFrontage      486\n",
      "GarageCond       159\n",
      "GarageQual       159\n",
      "GarageYrBlt      159\n",
      "GarageFinish     159\n",
      "GarageType       157\n",
      "BsmtCond          82\n",
      "BsmtExposure      82\n",
      "BsmtQual          81\n",
      "BsmtFinType2      80\n",
      "BsmtFinType1      79\n",
      "MasVnrType        24\n",
      "MasVnrArea        23\n",
      "MSZoning           4\n",
      "BsmtHalfBath       2\n",
      "Utilities          2\n",
      "Functional         2\n",
      "BsmtFullBath       2\n",
      "BsmtFinSF1         1\n",
      "Exterior1st        1\n",
      "Exterior2nd        1\n",
      "BsmtFinSF2         1\n",
      "BsmtUnfSF          1\n",
      "TotalBsmtSF        1\n",
      "SaleType           1\n",
      "Electrical         1\n",
      "KitchenQual        1\n",
      "GarageArea         1\n",
      "GarageCars         1\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "def find_null_columns(): \n",
    "    null_columns = df.isnull().sum().sort_values(ascending = False)\n",
    "    null_columns = null_columns[null_columns > 0]\n",
    "    print(\"Total number of records: \", df.shape[0])\n",
    "    print(\"No of columns with null values: \", len(null_columns))\n",
    "    print(\"\\nMissing values per column:\")\n",
    "    print(null_columns)\n",
    "    \n",
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There are 34 columns that contain null values. Let's analyze each of these columns one by one in the order of null occurrences.\n",
    "\n",
    "\n",
    "### PoolQC\n",
    "\n",
    "How many column names contain \"pool\" - likely that these are pool data related. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['PoolArea', 'PoolQC']"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def find_columns(df, search):\n",
    "    matched = [c for c in df.columns if search.lower() in c.lower()]\n",
    "    return matched\n",
    "\n",
    "find_columns(df, \"pool\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "From the field types described above, we can see PoolArea is numeric and PoolQC is categorical. Find out where are any records where PoolArea is mentioned but PoolQC is null."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2909, 80)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.query(\"PoolArea >= 0 and PoolQC != PoolQC\").shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Out of these, how many have >0 PoolArea?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PoolArea</th>\n",
       "      <th>PoolQC</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2420</th>\n",
       "      <td>368</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2503</th>\n",
       "      <td>444</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2599</th>\n",
       "      <td>561</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      PoolArea PoolQC\n",
       "2420       368    NaN\n",
       "2503       444    NaN\n",
       "2599       561    NaN"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.query(\"PoolArea > 0 and PoolQC != PoolQC\")[['PoolArea', 'PoolQC']]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can impute the values of PoolQC, by looking at PoolArea value. Find out how many diff values are there for PoolQC and their freq and mean PoolArea"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mean</th>\n",
       "      <th>len</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>PoolQC</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Ex</th>\n",
       "      <td>359.75</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fa</th>\n",
       "      <td>583.50</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Gd</th>\n",
       "      <td>648.50</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          mean  len\n",
       "PoolQC             \n",
       "Ex      359.75    4\n",
       "Fa      583.50    2\n",
       "Gd      648.50    4"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby(\"PoolQC\").PoolArea.agg([np.mean, len])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So, we can input Ex, Ex, Fa respectively so that PoolArea values are closer the mean values for the respective PoolQC. Replace the rest of NA values under PoolQC with \"None\". "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0, 80)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.loc[2420,'PoolQC'] = \"Ex\"\n",
    "df.loc[2503,'PoolQC'] = \"Ex\"\n",
    "df.loc[2599,'PoolQC'] = \"Fa\"\n",
    "idx = df.query(\"PoolArea == 0 and PoolQC != PoolQC\").index\n",
    "df.loc[idx, 'PoolQC'] = \"None\"\n",
    "df.query(\"PoolArea >= 0 and PoolQC != PoolQC\").shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Garage Fields\n",
    "\n",
    "Find garage fields"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2919 entries, 0 to 2918\n",
      "Data columns (total 7 columns):\n",
      "GarageType      2762 non-null object\n",
      "GarageYrBlt     2760 non-null float64\n",
      "GarageFinish    2760 non-null object\n",
      "GarageCars      2918 non-null float64\n",
      "GarageArea      2918 non-null float64\n",
      "GarageQual      2760 non-null object\n",
      "GarageCond      2760 non-null object\n",
      "dtypes: float64(3), object(4)\n",
      "memory usage: 159.7+ KB\n"
     ]
    }
   ],
   "source": [
    "garage_cols = find_columns(df, \"garage\")\n",
    "df[garage_cols].info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Lets see what the deal is with GarageYrBlt. It seems reasonable that most houses would build a garage when the house itself was built. We can check this by seeing how many houses were built the same year their garage was built."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True     2216\n",
       "False     703\n",
       "dtype: int64"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(df.GarageYrBlt == df.YearBuilt).value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2216 of the 2919 houses have same year for for GarageYrBlt and YearBuilt. Lets replace any of the NA’s for GarageYrBlt with the year from YearBuilt."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(159, 80)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.query(\"GarageYrBlt != GarageYrBlt\").shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True     2375\n",
       "False     544\n",
       "dtype: int64"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "idx = df.query(\"GarageYrBlt != GarageYrBlt\").index\n",
    "df.loc[idx, \"GarageYrBlt\"] = df.loc[idx, \"YearBuilt\"]\n",
    "(df.GarageYrBlt == df.YearBuilt).value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False    2919\n",
       "Name: GarageYrBlt, dtype: int64"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.isnull(df.GarageYrBlt).value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So, there is no more NA in the GarageYrBlt field.\n",
    "\n",
    "\n",
    "Let's look at top 10 values of GarageYrBlt and top 10 YearBuilt values to to find any anamolies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2592    2207.0\n",
      "378     2010.0\n",
      "1502    2010.0\n",
      "819     2010.0\n",
      "1608    2010.0\n",
      "987     2010.0\n",
      "914     2009.0\n",
      "572     2009.0\n",
      "1661    2009.0\n",
      "1711    2009.0\n",
      "Name: GarageYrBlt, dtype: float64\n",
      "378     2010\n",
      "1576    2010\n",
      "1502    2010\n",
      "507     2009\n",
      "898     2009\n",
      "762     2009\n",
      "87      2009\n",
      "819     2009\n",
      "103     2009\n",
      "1608    2009\n",
      "Name: YearBuilt, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print(df.GarageYrBlt.sort_values(ascending = False)[:10])\n",
    "print(df.YearBuilt.sort_values(ascending = False)[:10])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GarageYrBlt</th>\n",
       "      <th>YearBuilt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2592</th>\n",
       "      <td>2207.0</td>\n",
       "      <td>2006</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      GarageYrBlt  YearBuilt\n",
       "2592       2207.0       2006"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.GarageYrBlt == 2207][[\"GarageYrBlt\", \"YearBuilt\"]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Replace GarageYrBlt with YearBuild for record 2593"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df.loc[2592, \"GarageYrBlt\"] = 2006"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot histogram of GarageYrBlt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x116c18828>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1163494e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.GarageYrBlt.plot.hist(bins = 100)\n",
    "plt.title(\"Histogram by GarageYrBlt\")\n",
    "plt.xlabel(\"GarageYrBlt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot histogram of YearBuilt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x11a59d470>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x117093208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.YearBuilt.plot.hist(bins = 100)\n",
    "plt.title(\"Histogram by YearBuilt\")\n",
    "plt.xlabel(\"YearBuilt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's see values at lower end to find any anamolies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1349    1872.0\n",
      "1137    1875.0\n",
      "2422    1890.0\n",
      "2096    1890.0\n",
      "2426    1895.0\n",
      "2579    1895.0\n",
      "2217    1895.0\n",
      "1602    1896.0\n",
      "1856    1900.0\n",
      "1530    1900.0\n",
      "Name: GarageYrBlt, dtype: float64\n",
      "1349    1872\n",
      "1137    1875\n",
      "2451    1879\n",
      "747     1880\n",
      "1132    1880\n",
      "1856    1880\n",
      "630     1880\n",
      "304     1880\n",
      "991     1882\n",
      "1416    1885\n",
      "Name: YearBuilt, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print(df.GarageYrBlt.sort_values(ascending = True)[:10])\n",
    "print(df.YearBuilt.sort_values(ascending = True)[:10])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "At the lower values there is no obvious anamoly.\n",
    "\n",
    "\n",
    "\n",
    "That leaves 6 garage features in our dataset and 4 of them have at least 157 missing values while GarageArea and GarageCars both only have 1, thus we can assume this particular house does not have a garage at all. For the rest of the houses we can check to see that if the NA’s recorded also have 0 GarageArea and 0 GarageCars. If they do we can fill in their missing values with ‘None’ since having 0 area and 0 cars in their garage will imply that they do not have any at all.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GarageType</th>\n",
       "      <th>GarageYrBlt</th>\n",
       "      <th>GarageFinish</th>\n",
       "      <th>GarageCars</th>\n",
       "      <th>GarageArea</th>\n",
       "      <th>GarageQual</th>\n",
       "      <th>GarageCond</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2126</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1910.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     GarageType  GarageYrBlt GarageFinish  GarageCars  GarageArea GarageQual  \\\n",
       "2126     Detchd       1910.0          NaN         1.0       360.0        NaN   \n",
       "\n",
       "     GarageCond  \n",
       "2126        NaN  "
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.GarageCond.isnull()][garage_cols].query(\"GarageArea > 0\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Only one house who had NA’s in their garage columns had an area graeteer than 0. We can fill this house in manually and set the rest of the houses NA’s to 0.\n",
    "\n",
    "For the house with GarageArea = 360 and GarageCars = 1, but NA’s in the other columns, we can use the most frequent values for each columns from houses with a similar area and car count."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GarageType</th>\n",
       "      <th>GarageYrBlt</th>\n",
       "      <th>GarageFinish</th>\n",
       "      <th>GarageCars</th>\n",
       "      <th>GarageArea</th>\n",
       "      <th>GarageQual</th>\n",
       "      <th>GarageCond</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1962.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1960.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1973.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1987.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>Basment</td>\n",
       "      <td>1920.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>366.0</td>\n",
       "      <td>Fa</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1989.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>242</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1940.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>Fa</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>325</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1941.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>330</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>2002.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>383</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1950.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>Fa</td>\n",
       "      <td>Fa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>387</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1977.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>410</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1958.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>350.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>413</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1927.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>427</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1964.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>438</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1990.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>442</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1930.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>459</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1950.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>462</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1965.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>508</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1928.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>543</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1998.0</td>\n",
       "      <td>Fin</td>\n",
       "      <td>1.0</td>\n",
       "      <td>367.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>579</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1954.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>Fa</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>627</th>\n",
       "      <td>Basment</td>\n",
       "      <td>1955.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>1.0</td>\n",
       "      <td>364.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>740</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1910.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>Gd</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>809</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1910.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>Fa</td>\n",
       "      <td>Po</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>838</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1999.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>848</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1908.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>Fa</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>893</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1954.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>354.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1961.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>368.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1053</th>\n",
       "      <td>Basment</td>\n",
       "      <td>1957.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>364.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1170</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1977.0</td>\n",
       "      <td>Fin</td>\n",
       "      <td>1.0</td>\n",
       "      <td>358.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1589</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1975.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1617</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1971.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1762</th>\n",
       "      <td>BuiltIn</td>\n",
       "      <td>1961.0</td>\n",
       "      <td>Fin</td>\n",
       "      <td>2.0</td>\n",
       "      <td>368.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1771</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1955.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>350.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1781</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1958.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>366.0</td>\n",
       "      <td>Fa</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1791</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1963.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>364.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1817</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1930.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>357.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1917</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1977.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>351.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1962</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1975.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2083</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1954.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>350.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2115</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1924.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>370.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2119</th>\n",
       "      <td>BuiltIn</td>\n",
       "      <td>1920.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>1.0</td>\n",
       "      <td>355.0</td>\n",
       "      <td>Fa</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2126</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1910.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2199</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>2001.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>369.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2214</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1934.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>1.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2215</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1958.0</td>\n",
       "      <td>Fin</td>\n",
       "      <td>1.0</td>\n",
       "      <td>356.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2278</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1970.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>1.0</td>\n",
       "      <td>368.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>Gd</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2285</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1974.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2315</th>\n",
       "      <td>BuiltIn</td>\n",
       "      <td>2007.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>3.0</td>\n",
       "      <td>350.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2418</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>2002.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2430</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1950.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>357.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2434</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1965.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>351.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2523</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1979.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>370.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2555</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1959.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>355.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2558</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1973.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>352.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2587</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1975.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2743</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1956.0</td>\n",
       "      <td>Fin</td>\n",
       "      <td>1.0</td>\n",
       "      <td>353.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2797</th>\n",
       "      <td>Detchd</td>\n",
       "      <td>1924.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>370.0</td>\n",
       "      <td>Fa</td>\n",
       "      <td>Fa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2860</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1969.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>1.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2884</th>\n",
       "      <td>Attchd</td>\n",
       "      <td>1930.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>2.0</td>\n",
       "      <td>365.0</td>\n",
       "      <td>Fa</td>\n",
       "      <td>TA</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>67 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     GarageType  GarageYrBlt GarageFinish  GarageCars  GarageArea GarageQual  \\\n",
       "12       Detchd       1962.0          Unf         1.0       352.0         TA   \n",
       "14       Attchd       1960.0          RFn         1.0       352.0         TA   \n",
       "59       Detchd       1973.0          Unf         1.0       352.0         TA   \n",
       "71       Detchd       1987.0          Unf         2.0       360.0         TA   \n",
       "98      Basment       1920.0          Unf         1.0       366.0         Fa   \n",
       "194      Detchd       1989.0          Unf         1.0       352.0         TA   \n",
       "242      Attchd       1940.0          Unf         1.0       352.0         Fa   \n",
       "325      Detchd       1941.0          Unf         2.0       360.0         TA   \n",
       "330      Detchd       2002.0          Unf         1.0       352.0         TA   \n",
       "383      Detchd       1950.0          Unf         2.0       360.0         Fa   \n",
       "387      Detchd       1977.0          Unf         1.0       352.0         TA   \n",
       "410      Attchd       1958.0          Unf         1.0       350.0         TA   \n",
       "413      Detchd       1927.0          Unf         2.0       360.0         TA   \n",
       "427      Detchd       1964.0          Unf         1.0       352.0         TA   \n",
       "438      Detchd       1990.0          Unf         1.0       352.0         Gd   \n",
       "442      Detchd       1930.0          Unf         2.0       360.0         TA   \n",
       "459      Detchd       1950.0          Unf         1.0       352.0         TA   \n",
       "462      Detchd       1965.0          Unf         1.0       360.0         TA   \n",
       "508      Detchd       1928.0          Unf         2.0       360.0         TA   \n",
       "543      Attchd       1998.0          Fin         1.0       367.0         TA   \n",
       "579      Attchd       1954.0          Unf         1.0       352.0         Fa   \n",
       "627     Basment       1955.0          RFn         1.0       364.0         TA   \n",
       "740      Detchd       1910.0          Unf         2.0       360.0         TA   \n",
       "809      Detchd       1910.0          Unf         2.0       360.0         Fa   \n",
       "838      Attchd       1999.0          Unf         1.0       352.0         TA   \n",
       "848      Detchd       1908.0          Unf         2.0       360.0         Fa   \n",
       "893      Attchd       1954.0          Unf         1.0       354.0         TA   \n",
       "996      Attchd       1961.0          Unf         1.0       368.0         TA   \n",
       "1053    Basment       1957.0          Unf         1.0       364.0         TA   \n",
       "1170     Attchd       1977.0          Fin         1.0       358.0         TA   \n",
       "...         ...          ...          ...         ...         ...        ...   \n",
       "1589     Detchd       1975.0          Unf         1.0       352.0         TA   \n",
       "1617     Detchd       1971.0          Unf         1.0       352.0         TA   \n",
       "1762    BuiltIn       1961.0          Fin         2.0       368.0         TA   \n",
       "1771     Attchd       1955.0          Unf         1.0       350.0         TA   \n",
       "1781     Attchd       1958.0          Unf         1.0       366.0         Fa   \n",
       "1791     Attchd       1963.0          Unf         1.0       364.0         TA   \n",
       "1817     Detchd       1930.0          Unf         1.0       357.0         TA   \n",
       "1917     Attchd       1977.0          Unf         1.0       351.0         TA   \n",
       "1962     Detchd       1975.0          Unf         1.0       352.0         TA   \n",
       "2083     Attchd       1954.0          Unf         1.0       350.0         TA   \n",
       "2115     Detchd       1924.0          Unf         2.0       370.0         TA   \n",
       "2119    BuiltIn       1920.0          RFn         1.0       355.0         Fa   \n",
       "2126     Detchd       1910.0          NaN         1.0       360.0        NaN   \n",
       "2199     Detchd       2001.0          Unf         1.0       369.0         TA   \n",
       "2214     Detchd       1934.0          RFn         1.0       360.0         TA   \n",
       "2215     Attchd       1958.0          Fin         1.0       356.0         TA   \n",
       "2278     Attchd       1970.0          RFn         1.0       368.0         TA   \n",
       "2285     Detchd       1974.0          Unf         1.0       360.0         TA   \n",
       "2315    BuiltIn       2007.0          Unf         3.0       350.0         TA   \n",
       "2418     Detchd       2002.0          Unf         1.0       352.0         TA   \n",
       "2430     Attchd       1950.0          Unf         1.0       357.0         TA   \n",
       "2434     Attchd       1965.0          Unf         1.0       351.0         TA   \n",
       "2523     Detchd       1979.0          Unf         2.0       370.0         TA   \n",
       "2555     Detchd       1959.0          Unf         1.0       355.0         TA   \n",
       "2558     Detchd       1973.0          Unf         1.0       352.0         TA   \n",
       "2587     Attchd       1975.0          Unf         1.0       360.0         TA   \n",
       "2743     Attchd       1956.0          Fin         1.0       353.0         TA   \n",
       "2797     Detchd       1924.0          Unf         2.0       370.0         Fa   \n",
       "2860     Attchd       1969.0          Unf         1.0       360.0         TA   \n",
       "2884     Attchd       1930.0          Unf         2.0       365.0         Fa   \n",
       "\n",
       "     GarageCond  \n",
       "12           TA  \n",
       "14           TA  \n",
       "59           TA  \n",
       "71           TA  \n",
       "98           TA  \n",
       "194          TA  \n",
       "242          TA  \n",
       "325          TA  \n",
       "330          TA  \n",
       "383          Fa  \n",
       "387          TA  \n",
       "410          TA  \n",
       "413          TA  \n",
       "427          TA  \n",
       "438          TA  \n",
       "442          TA  \n",
       "459          TA  \n",
       "462          TA  \n",
       "508          TA  \n",
       "543          TA  \n",
       "579          TA  \n",
       "627          TA  \n",
       "740          Gd  \n",
       "809          Po  \n",
       "838          TA  \n",
       "848          TA  \n",
       "893          TA  \n",
       "996          TA  \n",
       "1053         TA  \n",
       "1170         TA  \n",
       "...         ...  \n",
       "1589         TA  \n",
       "1617         TA  \n",
       "1762         TA  \n",
       "1771         TA  \n",
       "1781         TA  \n",
       "1791         TA  \n",
       "1817         TA  \n",
       "1917         TA  \n",
       "1962         TA  \n",
       "2083         TA  \n",
       "2115         TA  \n",
       "2119         TA  \n",
       "2126        NaN  \n",
       "2199         TA  \n",
       "2214         TA  \n",
       "2215         TA  \n",
       "2278         Gd  \n",
       "2285         TA  \n",
       "2315         TA  \n",
       "2418         TA  \n",
       "2430         TA  \n",
       "2434         TA  \n",
       "2523         TA  \n",
       "2555         TA  \n",
       "2558         TA  \n",
       "2587         TA  \n",
       "2743         TA  \n",
       "2797         Fa  \n",
       "2860         TA  \n",
       "2884         TA  \n",
       "\n",
       "[67 rows x 7 columns]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "idx = df.query(\"GarageArea >= 350 and GarageArea <= 370\").index\n",
    "df2 = df.loc[idx, garage_cols]\n",
    "df2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Find most common values for each column"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GarageType      Detchd\n",
       "GarageYrBlt       1950\n",
       "GarageFinish       Unf\n",
       "GarageCars           1\n",
       "GarageArea         352\n",
       "GarageQual          TA\n",
       "GarageCond          TA\n",
       "dtype: object"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def mostFrequent(col):\n",
    "    counts = col.value_counts()\n",
    "    counts = counts.sort_values(ascending = False)\n",
    "    return  counts.index[0]\n",
    "\n",
    "df2.apply(mostFrequent, axis = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df.loc[2126, \"GarageQual\"] = \"TA\"\n",
    "df.loc[2126, \"GarageFinish\"] = \"Unf\"\n",
    "df.loc[2126, \"GarageCond\"] = \"TA\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can fill in any missing numeric values with 0 and categoric with ‘None’ since these houses recorded having 0 area and 0 cars in their garage."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GarageType      157\n",
       "GarageYrBlt       0\n",
       "GarageFinish    158\n",
       "GarageCars        1\n",
       "GarageArea        1\n",
       "GarageQual      158\n",
       "GarageCond      158\n",
       "dtype: int64"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.isnull(df[garage_cols]).sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['GarageType',\n",
       " 'GarageYrBlt',\n",
       " 'GarageFinish',\n",
       " 'GarageCars',\n",
       " 'GarageArea',\n",
       " 'GarageQual',\n",
       " 'GarageCond']"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "garage_cols"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GarageType      0\n",
       "GarageYrBlt     0\n",
       "GarageFinish    0\n",
       "GarageCars      0\n",
       "GarageArea      0\n",
       "GarageQual      0\n",
       "GarageCond      0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def replace_with(df, col, fill_with):\n",
    "    idx = df[df[col].isnull()].index\n",
    "    df.loc[idx, col] = fill_with\n",
    "    \n",
    "for c in [\"GarageType\", \"GarageFinish\", \"GarageQual\", \"GarageCond\"]:\n",
    "    replace_with(df, c, \"None\")\n",
    "\n",
    "for c in [\"GarageCars\", \"GarageArea\"]:\n",
    "    replace_with(df, c, 0.0)\n",
    "\n",
    "pd.isnull(df[garage_cols]).sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### KitchenQual and Electrical\n",
    "\n",
    "With only 1 missing value for KitchenQual and Electrical each we can fill in the missing value with the most frequent value from each column."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2919 entries, 0 to 2918\n",
      "Data columns (total 2 columns):\n",
      "KitchenAbvGr    2919 non-null int64\n",
      "KitchenQual     2918 non-null object\n",
      "dtypes: int64(1), object(1)\n",
      "memory usage: 45.7+ KB\n"
     ]
    }
   ],
   "source": [
    "df[find_columns(df, \"kitchen\")].info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "TA    1492\n",
       "Gd    1151\n",
       "Ex     205\n",
       "Fa      70\n",
       "Name: KitchenQual, dtype: int64"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.KitchenQual.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "replace_with(df, \"KitchenQual\", \"TA\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2919 entries, 0 to 2918\n",
      "Data columns (total 1 columns):\n",
      "Electrical    2918 non-null object\n",
      "dtypes: object(1)\n",
      "memory usage: 22.9+ KB\n"
     ]
    }
   ],
   "source": [
    "df[find_columns(df, \"electrical\")].info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SBrkr    2671\n",
       "FuseA     188\n",
       "FuseF      50\n",
       "FuseP       8\n",
       "Mix         1\n",
       "Name: Electrical, dtype: int64"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.Electrical.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2919 entries, 0 to 2918\n",
      "Data columns (total 1 columns):\n",
      "Electrical    2919 non-null object\n",
      "dtypes: object(1)\n",
      "memory usage: 22.9+ KB\n"
     ]
    }
   ],
   "source": [
    "replace_with(df, \"Electrical\", \"SBrkr\")\n",
    "df[find_columns(df, \"electrical\")].info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Basement"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2919 entries, 0 to 2918\n",
      "Data columns (total 11 columns):\n",
      "BsmtQual        2838 non-null object\n",
      "BsmtCond        2837 non-null object\n",
      "BsmtExposure    2837 non-null object\n",
      "BsmtFinType1    2840 non-null object\n",
      "BsmtFinSF1      2918 non-null float64\n",
      "BsmtFinType2    2839 non-null object\n",
      "BsmtFinSF2      2918 non-null float64\n",
      "BsmtUnfSF       2918 non-null float64\n",
      "TotalBsmtSF     2918 non-null float64\n",
      "BsmtFullBath    2917 non-null float64\n",
      "BsmtHalfBath    2917 non-null float64\n",
      "dtypes: float64(6), object(5)\n",
      "memory usage: 250.9+ KB\n"
     ]
    }
   ],
   "source": [
    "basement_columns = find_columns(df, \"bsmt\")\n",
    "df[basement_columns].info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "From the documetation below are the description of these fields.\n",
    "- BsmtQual: Height of the basement\n",
    "- BsmtCond: General condition of the basement\n",
    "- BsmtExposure: Walkout or garden level basement walls\n",
    "- BsmtFinType1: Quality of basement finished area\n",
    "- BsmtFinSF1: Type 1 finished square feet\n",
    "- BsmtFinType2: Quality of second finished area (if present)\n",
    "- BsmtFinSF2: Type 2 finished square feet\n",
    "- BsmtUnfSF: Unfinished square feet of basement area\n",
    "- TotalBsmtSF: Total square feet of basement area\n",
    "- BsmtFullBath: Basement full bathrooms\n",
    "- BsmtHalfBath: Basement half bathrooms\n",
    "\n",
    "There are 11 basement features each with at least 1 missing value. We can take a look at the subset of just these columns from our data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>BsmtQual</th>\n",
       "      <th>BsmtCond</th>\n",
       "      <th>BsmtExposure</th>\n",
       "      <th>BsmtFinType1</th>\n",
       "      <th>BsmtFinSF1</th>\n",
       "      <th>BsmtFinType2</th>\n",
       "      <th>BsmtFinSF2</th>\n",
       "      <th>BsmtUnfSF</th>\n",
       "      <th>TotalBsmtSF</th>\n",
       "      <th>BsmtFullBath</th>\n",
       "      <th>BsmtHalfBath</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>90</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>102</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>156</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>182</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>259</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>342</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>362</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>371</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>392</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>520</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>532</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>533</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>553</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>646</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>705</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>736</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>749</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>778</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>868</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>894</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>897</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>948</th>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>936.0</td>\n",
       "      <td>936.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>984</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1000</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1011</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1035</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1045</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2066</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2068</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2120</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2122</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2188</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2189</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2190</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2193</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2216</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2224</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2348</th>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>725.0</td>\n",
       "      <td>725.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2387</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2435</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2452</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2453</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2490</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2498</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2547</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2552</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2564</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2578</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2599</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2702</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2763</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2766</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2803</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2804</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2824</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2891</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2904</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>82 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     BsmtQual BsmtCond BsmtExposure BsmtFinType1  BsmtFinSF1 BsmtFinType2  \\\n",
       "17        NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "39        NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "90        NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "102       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "156       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "182       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "259       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "342       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "362       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "371       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "392       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "520       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "532       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "533       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "553       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "646       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "705       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "736       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "749       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "778       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "868       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "894       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "897       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "948        Gd       TA          NaN          Unf         0.0          Unf   \n",
       "984       NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "1000      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "1011      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "1035      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "1045      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "1048      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "...       ...      ...          ...          ...         ...          ...   \n",
       "2066      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2068      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2120      NaN      NaN          NaN          NaN         NaN          NaN   \n",
       "2122      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2188      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2189      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2190      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2193      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2216      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2224      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2348       Gd       TA          NaN          Unf         0.0          Unf   \n",
       "2387      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2435      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2452      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2453      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2490      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2498      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2547      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2552      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2564      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2578      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2599      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2702      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2763      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2766      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2803      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2804      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2824      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2891      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "2904      NaN      NaN          NaN          NaN         0.0          NaN   \n",
       "\n",
       "      BsmtFinSF2  BsmtUnfSF  TotalBsmtSF  BsmtFullBath  BsmtHalfBath  \n",
       "17           0.0        0.0          0.0           0.0           0.0  \n",
       "39           0.0        0.0          0.0           0.0           0.0  \n",
       "90           0.0        0.0          0.0           0.0           0.0  \n",
       "102          0.0        0.0          0.0           0.0           0.0  \n",
       "156          0.0        0.0          0.0           0.0           0.0  \n",
       "182          0.0        0.0          0.0           0.0           0.0  \n",
       "259          0.0        0.0          0.0           0.0           0.0  \n",
       "342          0.0        0.0          0.0           0.0           0.0  \n",
       "362          0.0        0.0          0.0           0.0           0.0  \n",
       "371          0.0        0.0          0.0           0.0           0.0  \n",
       "392          0.0        0.0          0.0           0.0           0.0  \n",
       "520          0.0        0.0          0.0           0.0           0.0  \n",
       "532          0.0        0.0          0.0           0.0           0.0  \n",
       "533          0.0        0.0          0.0           0.0           0.0  \n",
       "553          0.0        0.0          0.0           0.0           0.0  \n",
       "646          0.0        0.0          0.0           0.0           0.0  \n",
       "705          0.0        0.0          0.0           0.0           0.0  \n",
       "736          0.0        0.0          0.0           0.0           0.0  \n",
       "749          0.0        0.0          0.0           0.0           0.0  \n",
       "778          0.0        0.0          0.0           0.0           0.0  \n",
       "868          0.0        0.0          0.0           0.0           0.0  \n",
       "894          0.0        0.0          0.0           0.0           0.0  \n",
       "897          0.0        0.0          0.0           0.0           0.0  \n",
       "948          0.0      936.0        936.0           0.0           0.0  \n",
       "984          0.0        0.0          0.0           0.0           0.0  \n",
       "1000         0.0        0.0          0.0           0.0           0.0  \n",
       "1011         0.0        0.0          0.0           0.0           0.0  \n",
       "1035         0.0        0.0          0.0           0.0           0.0  \n",
       "1045         0.0        0.0          0.0           0.0           0.0  \n",
       "1048         0.0        0.0          0.0           0.0           0.0  \n",
       "...          ...        ...          ...           ...           ...  \n",
       "2066         0.0        0.0          0.0           0.0           0.0  \n",
       "2068         0.0        0.0          0.0           0.0           0.0  \n",
       "2120         NaN        NaN          NaN           NaN           NaN  \n",
       "2122         0.0        0.0          0.0           0.0           0.0  \n",
       "2188         0.0        0.0          0.0           NaN           NaN  \n",
       "2189         0.0        0.0          0.0           0.0           0.0  \n",
       "2190         0.0        0.0          0.0           0.0           0.0  \n",
       "2193         0.0        0.0          0.0           0.0           0.0  \n",
       "2216         0.0        0.0          0.0           0.0           0.0  \n",
       "2224         0.0        0.0          0.0           0.0           0.0  \n",
       "2348         0.0      725.0        725.0           0.0           0.0  \n",
       "2387         0.0        0.0          0.0           0.0           0.0  \n",
       "2435         0.0        0.0          0.0           0.0           0.0  \n",
       "2452         0.0        0.0          0.0           0.0           0.0  \n",
       "2453         0.0        0.0          0.0           0.0           0.0  \n",
       "2490         0.0        0.0          0.0           0.0           0.0  \n",
       "2498         0.0        0.0          0.0           0.0           0.0  \n",
       "2547         0.0        0.0          0.0           0.0           0.0  \n",
       "2552         0.0        0.0          0.0           0.0           0.0  \n",
       "2564         0.0        0.0          0.0           0.0           0.0  \n",
       "2578         0.0        0.0          0.0           0.0           0.0  \n",
       "2599         0.0        0.0          0.0           0.0           0.0  \n",
       "2702         0.0        0.0          0.0           0.0           0.0  \n",
       "2763         0.0        0.0          0.0           0.0           0.0  \n",
       "2766         0.0        0.0          0.0           0.0           0.0  \n",
       "2803         0.0        0.0          0.0           0.0           0.0  \n",
       "2804         0.0        0.0          0.0           0.0           0.0  \n",
       "2824         0.0        0.0          0.0           0.0           0.0  \n",
       "2891         0.0        0.0          0.0           0.0           0.0  \n",
       "2904         0.0        0.0          0.0           0.0           0.0  \n",
       "\n",
       "[82 rows x 11 columns]"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.BsmtExposure.isnull()][basement_columns]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "No    1904\n",
       "Av     418\n",
       "Gd     276\n",
       "Mn     239\n",
       "Name: BsmtExposure, dtype: int64"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.BsmtExposure.value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Almost all of the missing values for each categoric basement feature comes from houses with 0 on each features corresponding to area. We can fill in these values with ‘None’ since these houses certainly don’t have basements. Rows 949, 1488 and 2349 are the only missing values from BsmtExposure, we can fill this with No as that is the most frequent value and these houses most likely don’t have any exposure for their basements. The rest of the basement columns corresponding to area will be filled with 0 since they likely don’t have a basement and the categoric missing values will be filled with NoBsmt."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df.loc[[949, 1488, 2349], 'BsmtExposure'] = 'No'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2919 entries, 0 to 2918\n",
      "Data columns (total 11 columns):\n",
      "BsmtQual        2838 non-null object\n",
      "BsmtCond        2837 non-null object\n",
      "BsmtExposure    2837 non-null object\n",
      "BsmtFinType1    2840 non-null object\n",
      "BsmtFinSF1      2918 non-null float64\n",
      "BsmtFinType2    2839 non-null object\n",
      "BsmtFinSF2      2918 non-null float64\n",
      "BsmtUnfSF       2918 non-null float64\n",
      "TotalBsmtSF     2918 non-null float64\n",
      "BsmtFullBath    2917 non-null float64\n",
      "BsmtHalfBath    2917 non-null float64\n",
      "dtypes: float64(6), object(5)\n",
      "memory usage: 250.9+ KB\n"
     ]
    }
   ],
   "source": [
    "df[basement_columns].info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2919 entries, 0 to 2918\n",
      "Data columns (total 11 columns):\n",
      "BsmtQual        2919 non-null object\n",
      "BsmtCond        2919 non-null object\n",
      "BsmtExposure    2919 non-null object\n",
      "BsmtFinType1    2919 non-null object\n",
      "BsmtFinSF1      2919 non-null float64\n",
      "BsmtFinType2    2919 non-null object\n",
      "BsmtFinSF2      2919 non-null float64\n",
      "BsmtUnfSF       2919 non-null float64\n",
      "TotalBsmtSF     2919 non-null float64\n",
      "BsmtFullBath    2919 non-null float64\n",
      "BsmtHalfBath    2919 non-null float64\n",
      "dtypes: float64(6), object(5)\n",
      "memory usage: 250.9+ KB\n"
     ]
    }
   ],
   "source": [
    "for c in [\"BsmtQual\", \"BsmtCond\", \"BsmtExposure\", \"BsmtFinType1\", \"BsmtFinType2\"]:\n",
    "    replace_with(df, c, \"None\")\n",
    "\n",
    "for c in [\"BsmtFinSF1\", \"BsmtFinSF2\", \"BsmtUnfSF\",\n",
    "          \"TotalBsmtSF\", \"BsmtFullBath\", \"BsmtHalfBath\"]:\n",
    "    replace_with(df, c, 0.0)\n",
    "    \n",
    "df[basement_columns].info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  13\n",
      "\n",
      "Missing values per column:\n",
      "MiscFeature    2814\n",
      "Alley          2721\n",
      "Fence          2348\n",
      "FireplaceQu    1420\n",
      "LotFrontage     486\n",
      "MasVnrType       24\n",
      "MasVnrArea       23\n",
      "MSZoning          4\n",
      "Utilities         2\n",
      "Functional        2\n",
      "Exterior2nd       1\n",
      "Exterior1st       1\n",
      "SaleType          1\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exterior"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Exterior1st', 'Exterior2nd']"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "exterior_columns = find_columns(df, \"exterior\")\n",
    "exterior_columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Exterior1st</th>\n",
       "      <th>Exterior2nd</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2151</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     Exterior1st Exterior2nd\n",
       "2151         NaN         NaN"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.query(\"Exterior1st != Exterior1st or Exterior2nd != Exterior2nd\")[exterior_columns]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df.loc[2151, \"Exterior1st\"] = \"Other\"\n",
    "df.loc[2151, \"Exterior2nd\"] = \"Other\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  11\n",
      "\n",
      "Missing values per column:\n",
      "MiscFeature    2814\n",
      "Alley          2721\n",
      "Fence          2348\n",
      "FireplaceQu    1420\n",
      "LotFrontage     486\n",
      "MasVnrType       24\n",
      "MasVnrArea       23\n",
      "MSZoning          4\n",
      "Utilities         2\n",
      "Functional        2\n",
      "SaleType          1\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Sale Type\n",
    "\n",
    "SaleType, Functional and Utilities have less than 3 missing values. For SaleType we can see what the SaleCondition of the house was and use a contingency table to see which SaleType and SaleCondition overlap together the most."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['SaleType', 'SaleCondition']"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sale_columns = find_columns(df, \"sale\")\n",
    "sale_columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SaleType</th>\n",
       "      <th>SaleCondition</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2489</th>\n",
       "      <td>NaN</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     SaleType SaleCondition\n",
       "2489      NaN        Normal"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.SaleType.isnull()][sale_columns]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>SaleCondition</th>\n",
       "      <th>Abnorml</th>\n",
       "      <th>AdjLand</th>\n",
       "      <th>Alloca</th>\n",
       "      <th>Family</th>\n",
       "      <th>Normal</th>\n",
       "      <th>Partial</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SaleType</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>COD</th>\n",
       "      <td>46.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.0</td>\n",
       "      <td>39.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CWD</th>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Con</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ConLD</th>\n",
       "      <td>3.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ConLI</th>\n",
       "      <td>2.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ConLw</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>New</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>239.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Oth</th>\n",
       "      <td>5.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WD</th>\n",
       "      <td>133.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>38.0</td>\n",
       "      <td>2314.0</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "SaleCondition  Abnorml  AdjLand  Alloca  Family  Normal  Partial\n",
       "SaleType                                                        \n",
       "COD               46.0      NaN     NaN     2.0    39.0      NaN\n",
       "CWD                1.0      NaN     NaN     1.0    10.0      NaN\n",
       "Con                NaN      NaN     NaN     NaN     4.0      1.0\n",
       "ConLD              3.0      NaN     NaN     1.0    21.0      1.0\n",
       "ConLI              2.0      NaN     NaN     2.0     5.0      NaN\n",
       "ConLw              NaN      NaN     NaN     1.0     7.0      NaN\n",
       "New                NaN      NaN     NaN     NaN     NaN    239.0\n",
       "Oth                5.0      NaN     NaN     1.0     1.0      NaN\n",
       "WD               133.0     12.0    24.0    38.0  2314.0      4.0"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby([\"SaleType\", \"SaleCondition\"]).Id.count().unstack()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  10\n",
      "\n",
      "Missing values per column:\n",
      "MiscFeature    2814\n",
      "Alley          2721\n",
      "Fence          2348\n",
      "FireplaceQu    1420\n",
      "LotFrontage     486\n",
      "MasVnrType       24\n",
      "MasVnrArea       23\n",
      "MSZoning          4\n",
      "Utilities         2\n",
      "Functional        2\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "df.loc[2489, \"SaleType\"] = \"WD\"\n",
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Functional\n",
    "\n",
    "There is no field that could help us replace the NA value for Functional. So let replace NA with most freq value.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Functional']"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "functional_columns = find_columns(df, \"func\")\n",
    "functional_columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Typ     2717\n",
       "Min2      70\n",
       "Min1      65\n",
       "Mod       35\n",
       "Maj1      19\n",
       "Maj2       9\n",
       "Sev        2\n",
       "Name: Functional, dtype: int64"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.Functional.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "replace_with(df, \"Functional\", \"Typ\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  9\n",
      "\n",
      "Missing values per column:\n",
      "MiscFeature    2814\n",
      "Alley          2721\n",
      "Fence          2348\n",
      "FireplaceQu    1420\n",
      "LotFrontage     486\n",
      "MasVnrType       24\n",
      "MasVnrArea       23\n",
      "MSZoning          4\n",
      "Utilities         2\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Utilities\n",
    "Utilities only has 1 value for NoSeWa and the rest AllPub. We can drop this feature from our dataset as the house with ‘NoSeWa’ is from our training set and will have won’t help with any predictive modelling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "AllPub    2916\n",
       "NoSeWa       1\n",
       "Name: Utilities, dtype: int64"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.Utilities.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  8\n",
      "\n",
      "Missing values per column:\n",
      "MiscFeature    2814\n",
      "Alley          2721\n",
      "Fence          2348\n",
      "FireplaceQu    1420\n",
      "LotFrontage     486\n",
      "MasVnrType       24\n",
      "MasVnrArea       23\n",
      "MSZoning          4\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "del df[\"Utilities\"]\n",
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### MSZoning\n",
    "\n",
    "MSZoning: The general zoning classification\n",
    "MSSubClass: The building class\n",
    "\n",
    "There are only 4 missing values for MSZoning. We can see what the subclass is for the houses with missing values for Zoning."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MSZoning</th>\n",
       "      <th>MSSubClass</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1915</th>\n",
       "      <td>NaN</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2216</th>\n",
       "      <td>NaN</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2250</th>\n",
       "      <td>NaN</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2904</th>\n",
       "      <td>NaN</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     MSZoning  MSSubClass\n",
       "1915      NaN          30\n",
       "2216      NaN          20\n",
       "2250      NaN          70\n",
       "2904      NaN          20"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "zoning_columns = [\"MSZoning\", \"MSSubClass\"]\n",
    "df[df.MSZoning.isnull()][zoning_columns]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Find the most frequent corresponding subclass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>MSZoning</th>\n",
       "      <th>C (all)</th>\n",
       "      <th>FV</th>\n",
       "      <th>RH</th>\n",
       "      <th>RL</th>\n",
       "      <th>RM</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MSSubClass</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>3.0</td>\n",
       "      <td>34.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1016.0</td>\n",
       "      <td>20.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>8.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.0</td>\n",
       "      <td>61.0</td>\n",
       "      <td>67.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>11.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>7.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.0</td>\n",
       "      <td>159.0</td>\n",
       "      <td>119.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60</th>\n",
       "      <td>NaN</td>\n",
       "      <td>43.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>529.0</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>70</th>\n",
       "      <td>4.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.0</td>\n",
       "      <td>57.0</td>\n",
       "      <td>63.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>9.0</td>\n",
       "      <td>14.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>80</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>115.0</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>85</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>47.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>90</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4.0</td>\n",
       "      <td>92.0</td>\n",
       "      <td>13.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>120</th>\n",
       "      <td>NaN</td>\n",
       "      <td>19.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>117.0</td>\n",
       "      <td>40.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>150</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>160</th>\n",
       "      <td>NaN</td>\n",
       "      <td>43.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>21.0</td>\n",
       "      <td>64.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>180</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>190</th>\n",
       "      <td>3.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4.0</td>\n",
       "      <td>31.0</td>\n",
       "      <td>23.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "MSZoning    C (all)    FV   RH      RL     RM\n",
       "MSSubClass                                   \n",
       "20              3.0  34.0  4.0  1016.0   20.0\n",
       "30              8.0   NaN  2.0    61.0   67.0\n",
       "40              NaN   NaN  NaN     4.0    2.0\n",
       "45              NaN   NaN  1.0     6.0   11.0\n",
       "50              7.0   NaN  2.0   159.0  119.0\n",
       "60              NaN  43.0  NaN   529.0    3.0\n",
       "70              4.0   NaN  3.0    57.0   63.0\n",
       "75              NaN   NaN  NaN     9.0   14.0\n",
       "80              NaN   NaN  NaN   115.0    3.0\n",
       "85              NaN   NaN  NaN    47.0    1.0\n",
       "90              NaN   NaN  4.0    92.0   13.0\n",
       "120             NaN  19.0  6.0   117.0   40.0\n",
       "150             NaN   NaN  NaN     1.0    NaN\n",
       "160             NaN  43.0  NaN    21.0   64.0\n",
       "180             NaN   NaN  NaN     NaN   17.0\n",
       "190             3.0   NaN  4.0    31.0   23.0"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby([\"MSSubClass\", \"MSZoning\"]).Id.count().unstack()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df.loc[1915, \"MSZoning\"] = \"RM\"\n",
    "df.loc[2216, \"MSZoning\"] = \"RL\"\n",
    "df.loc[2250, \"MSZoning\"] = \"RM\"\n",
    "df.loc[2904, \"MSZoning\"] = \"RL\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  7\n",
      "\n",
      "Missing values per column:\n",
      "MiscFeature    2814\n",
      "Alley          2721\n",
      "Fence          2348\n",
      "FireplaceQu    1420\n",
      "LotFrontage     486\n",
      "MasVnrType       24\n",
      "MasVnrArea       23\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Masonry\n",
    "\n",
    "MasVnrType: Masonry veneer type\n",
    "MasVnrArea: Masonry veneer area in square feet\n",
    "\n",
    "There are 23 missing values for MasVnrArea and 24 for MasVnrType. We can see if both missing values come from the same houses"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['MasVnrType', 'MasVnrArea']"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "masonary_columns = find_columns(df, \"mas\")\n",
    "masonary_columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MasVnrType</th>\n",
       "      <th>MasVnrArea</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>234</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>529</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>650</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>936</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>973</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>977</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1243</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1278</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1691</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1706</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1882</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1992</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2041</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2311</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2325</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2340</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2349</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2368</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2592</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2610</th>\n",
       "      <td>NaN</td>\n",
       "      <td>198.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2657</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2686</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2862</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     MasVnrType  MasVnrArea\n",
       "234         NaN         NaN\n",
       "529         NaN         NaN\n",
       "650         NaN         NaN\n",
       "936         NaN         NaN\n",
       "973         NaN         NaN\n",
       "977         NaN         NaN\n",
       "1243        NaN         NaN\n",
       "1278        NaN         NaN\n",
       "1691        NaN         NaN\n",
       "1706        NaN         NaN\n",
       "1882        NaN         NaN\n",
       "1992        NaN         NaN\n",
       "2004        NaN         NaN\n",
       "2041        NaN         NaN\n",
       "2311        NaN         NaN\n",
       "2325        NaN         NaN\n",
       "2340        NaN         NaN\n",
       "2349        NaN         NaN\n",
       "2368        NaN         NaN\n",
       "2592        NaN         NaN\n",
       "2610        NaN       198.0\n",
       "2657        NaN         NaN\n",
       "2686        NaN         NaN\n",
       "2862        NaN         NaN"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.MasVnrType.isnull() | df.MasVnrArea.isnull()][masonary_columns]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All but one house has missing values for both columns. For houses with NA’s on both columns we can fill 0 for the area and None for the type since they likely do not have a masonry veneer. For the house with a MasVnrArea of 198 but NA for MasVnrType we can record the median areas for each type and see which type is closest to 198."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>len</th>\n",
       "      <th>median</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MasVnrType</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>BrkCmn</th>\n",
       "      <td>25.0</td>\n",
       "      <td>161.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BrkFace</th>\n",
       "      <td>879.0</td>\n",
       "      <td>203.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>None</th>\n",
       "      <td>1742.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Stone</th>\n",
       "      <td>249.0</td>\n",
       "      <td>200.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               len  median\n",
       "MasVnrType                \n",
       "BrkCmn        25.0   161.0\n",
       "BrkFace      879.0   203.0\n",
       "None        1742.0     0.0\n",
       "Stone        249.0   200.0"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby(\"MasVnrType\").MasVnrArea.agg([len, np.median])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  5\n",
      "\n",
      "Missing values per column:\n",
      "MiscFeature    2814\n",
      "Alley          2721\n",
      "Fence          2348\n",
      "FireplaceQu    1420\n",
      "LotFrontage     486\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "df.loc[2610, \"MasVnrType\"] = \"Stone\"\n",
    "replace_with(df, \"MasVnrType\", \"None\")\n",
    "replace_with(df, \"MasVnrArea\", 0)\n",
    "\n",
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### LotFrontage: Linear feet of street connected to property\n",
    "There are 486 missing values for LotFrontage, which is quite a lot of values to fill and we can’t just replace these with 0. We’re given that “LotFrontage: Linear feet of street connected to property.” The area of each street connected to the house property is most likely going to have a similar area to other houses in its neighborhood. We can group by each neighborhood and take the median of each LotFrontage and fill the missing values of each LotFrontage based on what neighborhood the house comes from.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['LotFrontage', 'LotArea', 'LotShape', 'LotConfig', 'Neighborhood']"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lot_columns = find_columns(df, \"lot\")\n",
    "lot_columns.append(\"Neighborhood\")\n",
    "lot_columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>len</th>\n",
       "      <th>median</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Neighborhood</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Blmngtn</th>\n",
       "      <td>28.0</td>\n",
       "      <td>43.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Blueste</th>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BrDale</th>\n",
       "      <td>30.0</td>\n",
       "      <td>21.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BrkSide</th>\n",
       "      <td>108.0</td>\n",
       "      <td>51.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ClearCr</th>\n",
       "      <td>44.0</td>\n",
       "      <td>80.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CollgCr</th>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Crawfor</th>\n",
       "      <td>103.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Edwards</th>\n",
       "      <td>194.0</td>\n",
       "      <td>65.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Gilbert</th>\n",
       "      <td>165.0</td>\n",
       "      <td>64.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IDOTRR</th>\n",
       "      <td>93.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MeadowV</th>\n",
       "      <td>37.0</td>\n",
       "      <td>21.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mitchel</th>\n",
       "      <td>114.0</td>\n",
       "      <td>74.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NAmes</th>\n",
       "      <td>443.0</td>\n",
       "      <td>73.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NPkVill</th>\n",
       "      <td>23.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NWAmes</th>\n",
       "      <td>131.0</td>\n",
       "      <td>80.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NoRidge</th>\n",
       "      <td>71.0</td>\n",
       "      <td>89.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NridgHt</th>\n",
       "      <td>166.0</td>\n",
       "      <td>92.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OldTown</th>\n",
       "      <td>239.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SWISU</th>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sawyer</th>\n",
       "      <td>151.0</td>\n",
       "      <td>72.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SawyerW</th>\n",
       "      <td>125.0</td>\n",
       "      <td>67.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Somerst</th>\n",
       "      <td>182.0</td>\n",
       "      <td>72.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>StoneBr</th>\n",
       "      <td>51.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Timber</th>\n",
       "      <td>72.0</td>\n",
       "      <td>82.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Veenker</th>\n",
       "      <td>24.0</td>\n",
       "      <td>80.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                len  median\n",
       "Neighborhood               \n",
       "Blmngtn        28.0    43.0\n",
       "Blueste        10.0    24.0\n",
       "BrDale         30.0    21.0\n",
       "BrkSide       108.0    51.0\n",
       "ClearCr        44.0    80.5\n",
       "CollgCr       267.0    70.0\n",
       "Crawfor       103.0    70.0\n",
       "Edwards       194.0    65.0\n",
       "Gilbert       165.0    64.0\n",
       "IDOTRR         93.0    60.0\n",
       "MeadowV        37.0    21.0\n",
       "Mitchel       114.0    74.0\n",
       "NAmes         443.0    73.0\n",
       "NPkVill        23.0    24.0\n",
       "NWAmes        131.0    80.0\n",
       "NoRidge        71.0    89.0\n",
       "NridgHt       166.0    92.0\n",
       "OldTown       239.0    60.0\n",
       "SWISU          48.0    60.0\n",
       "Sawyer        151.0    72.0\n",
       "SawyerW       125.0    67.0\n",
       "Somerst       182.0    72.5\n",
       "StoneBr        51.0    60.0\n",
       "Timber         72.0    82.0\n",
       "Veenker        24.0    80.0"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "neighborhood = df.groupby(\"Neighborhood\").LotFrontage.agg([len, np.median])\n",
    "neighborhood"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>LotShape</th>\n",
       "      <th>LotConfig</th>\n",
       "      <th>Neighborhood</th>\n",
       "      <th>len</th>\n",
       "      <th>median</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>65.0</td>\n",
       "      <td>8450</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>68.0</td>\n",
       "      <td>11250</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>91.0</td>\n",
       "      <td>10652</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>75.0</td>\n",
       "      <td>9742</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>85.0</td>\n",
       "      <td>11049</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>112.0</td>\n",
       "      <td>10859</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>NaN</td>\n",
       "      <td>9200</td>\n",
       "      <td>IR1</td>\n",
       "      <td>CulDSac</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>89.0</td>\n",
       "      <td>11645</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>60.0</td>\n",
       "      <td>7200</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>64</th>\n",
       "      <td>NaN</td>\n",
       "      <td>9375</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>67</th>\n",
       "      <td>72.0</td>\n",
       "      <td>10665</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>89</th>\n",
       "      <td>60.0</td>\n",
       "      <td>8070</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>94</th>\n",
       "      <td>69.0</td>\n",
       "      <td>9337</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>78.0</td>\n",
       "      <td>10264</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>103</th>\n",
       "      <td>94.0</td>\n",
       "      <td>10402</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>112</th>\n",
       "      <td>77.0</td>\n",
       "      <td>9965</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>119</th>\n",
       "      <td>65.0</td>\n",
       "      <td>8461</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>138</th>\n",
       "      <td>73.0</td>\n",
       "      <td>9066</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>139</th>\n",
       "      <td>65.0</td>\n",
       "      <td>15426</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>141</th>\n",
       "      <td>78.0</td>\n",
       "      <td>11645</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>143</th>\n",
       "      <td>78.0</td>\n",
       "      <td>10335</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>150</th>\n",
       "      <td>120.0</td>\n",
       "      <td>10356</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>192</th>\n",
       "      <td>68.0</td>\n",
       "      <td>9017</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>60.0</td>\n",
       "      <td>7180</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>203</th>\n",
       "      <td>NaN</td>\n",
       "      <td>4438</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>213</th>\n",
       "      <td>43.0</td>\n",
       "      <td>13568</td>\n",
       "      <td>IR2</td>\n",
       "      <td>CulDSac</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>214</th>\n",
       "      <td>NaN</td>\n",
       "      <td>10900</td>\n",
       "      <td>IR1</td>\n",
       "      <td>FR2</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>216</th>\n",
       "      <td>65.0</td>\n",
       "      <td>8450</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>220</th>\n",
       "      <td>73.0</td>\n",
       "      <td>8990</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>233</th>\n",
       "      <td>75.0</td>\n",
       "      <td>10650</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1559</th>\n",
       "      <td>60.0</td>\n",
       "      <td>6048</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1591</th>\n",
       "      <td>67.0</td>\n",
       "      <td>4853</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1592</th>\n",
       "      <td>NaN</td>\n",
       "      <td>7890</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1593</th>\n",
       "      <td>60.0</td>\n",
       "      <td>7200</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1594</th>\n",
       "      <td>51.0</td>\n",
       "      <td>9839</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1896</th>\n",
       "      <td>70.0</td>\n",
       "      <td>6300</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1897</th>\n",
       "      <td>43.0</td>\n",
       "      <td>5707</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2197</th>\n",
       "      <td>60.0</td>\n",
       "      <td>7290</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2198</th>\n",
       "      <td>64.0</td>\n",
       "      <td>7804</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2475</th>\n",
       "      <td>59.0</td>\n",
       "      <td>4484</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2497</th>\n",
       "      <td>60.0</td>\n",
       "      <td>5400</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2557</th>\n",
       "      <td>60.0</td>\n",
       "      <td>10890</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2805</th>\n",
       "      <td>50.0</td>\n",
       "      <td>5220</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2806</th>\n",
       "      <td>50.0</td>\n",
       "      <td>5500</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2873</th>\n",
       "      <td>60.0</td>\n",
       "      <td>10890</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2874</th>\n",
       "      <td>58.0</td>\n",
       "      <td>6430</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2875</th>\n",
       "      <td>43.0</td>\n",
       "      <td>7000</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2876</th>\n",
       "      <td>69.0</td>\n",
       "      <td>4899</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2878</th>\n",
       "      <td>84.0</td>\n",
       "      <td>10164</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2879</th>\n",
       "      <td>51.0</td>\n",
       "      <td>6191</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>599</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1950</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>956</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1300</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1598</th>\n",
       "      <td>35.0</td>\n",
       "      <td>3907</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1599</th>\n",
       "      <td>35.0</td>\n",
       "      <td>3907</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1907</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1733</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1908</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1488</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1909</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1612</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2209</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1879</td>\n",
       "      <td>Reg</td>\n",
       "      <td>CulDSac</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2569</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1782</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2571</th>\n",
       "      <td>35.0</td>\n",
       "      <td>3907</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2919 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      LotFrontage  LotArea LotShape LotConfig Neighborhood    len  median\n",
       "0            65.0     8450      Reg    Inside      CollgCr  267.0    70.0\n",
       "2            68.0    11250      IR1    Inside      CollgCr  267.0    70.0\n",
       "13           91.0    10652      IR1    Inside      CollgCr  267.0    70.0\n",
       "22           75.0     9742      Reg    Inside      CollgCr  267.0    70.0\n",
       "32           85.0    11049      Reg    Corner      CollgCr  267.0    70.0\n",
       "36          112.0    10859      Reg    Corner      CollgCr  267.0    70.0\n",
       "43            NaN     9200      IR1   CulDSac      CollgCr  267.0    70.0\n",
       "57           89.0    11645      IR1    Corner      CollgCr  267.0    70.0\n",
       "59           60.0     7200      Reg    Inside      CollgCr  267.0    70.0\n",
       "64            NaN     9375      Reg    Inside      CollgCr  267.0    70.0\n",
       "67           72.0    10665      IR1    Inside      CollgCr  267.0    70.0\n",
       "89           60.0     8070      Reg    Inside      CollgCr  267.0    70.0\n",
       "94           69.0     9337      IR1    Inside      CollgCr  267.0    70.0\n",
       "96           78.0    10264      IR1    Inside      CollgCr  267.0    70.0\n",
       "103          94.0    10402      IR1    Corner      CollgCr  267.0    70.0\n",
       "112          77.0     9965      Reg    Inside      CollgCr  267.0    70.0\n",
       "119          65.0     8461      Reg    Inside      CollgCr  267.0    70.0\n",
       "138          73.0     9066      IR1    Inside      CollgCr  267.0    70.0\n",
       "139          65.0    15426      IR1    Inside      CollgCr  267.0    70.0\n",
       "141          78.0    11645      Reg    Inside      CollgCr  267.0    70.0\n",
       "143          78.0    10335      IR1    Inside      CollgCr  267.0    70.0\n",
       "150         120.0    10356      Reg    Corner      CollgCr  267.0    70.0\n",
       "192          68.0     9017      IR1    Inside      CollgCr  267.0    70.0\n",
       "194          60.0     7180      IR1    Inside      CollgCr  267.0    70.0\n",
       "203           NaN     4438      Reg    Inside      CollgCr  267.0    70.0\n",
       "213          43.0    13568      IR2   CulDSac      CollgCr  267.0    70.0\n",
       "214           NaN    10900      IR1       FR2      CollgCr  267.0    70.0\n",
       "216          65.0     8450      Reg    Inside      CollgCr  267.0    70.0\n",
       "220          73.0     8990      IR1    Inside      CollgCr  267.0    70.0\n",
       "233          75.0    10650      Reg    Corner      CollgCr  267.0    70.0\n",
       "...           ...      ...      ...       ...          ...    ...     ...\n",
       "1559         60.0     6048      Reg    Corner        SWISU   48.0    60.0\n",
       "1591         67.0     4853      Reg    Inside        SWISU   48.0    60.0\n",
       "1592          NaN     7890      Reg    Corner        SWISU   48.0    60.0\n",
       "1593         60.0     7200      Reg    Inside        SWISU   48.0    60.0\n",
       "1594         51.0     9839      Reg    Inside        SWISU   48.0    60.0\n",
       "1896         70.0     6300      Reg    Corner        SWISU   48.0    60.0\n",
       "1897         43.0     5707      Reg    Inside        SWISU   48.0    60.0\n",
       "2197         60.0     7290      Reg    Corner        SWISU   48.0    60.0\n",
       "2198         64.0     7804      Reg    Inside        SWISU   48.0    60.0\n",
       "2475         59.0     4484      IR1    Corner        SWISU   48.0    60.0\n",
       "2497         60.0     5400      Reg    Inside        SWISU   48.0    60.0\n",
       "2557         60.0    10890      Reg    Inside        SWISU   48.0    60.0\n",
       "2805         50.0     5220      IR1    Inside        SWISU   48.0    60.0\n",
       "2806         50.0     5500      Reg    Inside        SWISU   48.0    60.0\n",
       "2873         60.0    10890      Reg    Inside        SWISU   48.0    60.0\n",
       "2874         58.0     6430      Reg    Corner        SWISU   48.0    60.0\n",
       "2875         43.0     7000      Reg    Inside        SWISU   48.0    60.0\n",
       "2876         69.0     4899      Reg    Corner        SWISU   48.0    60.0\n",
       "2878         84.0    10164      Reg    Inside        SWISU   48.0    60.0\n",
       "2879         51.0     6191      Reg    Corner        SWISU   48.0    60.0\n",
       "599          24.0     1950      Reg    Inside      Blueste   10.0    24.0\n",
       "956          24.0     1300      Reg    Inside      Blueste   10.0    24.0\n",
       "1598         35.0     3907      IR1    Inside      Blueste   10.0    24.0\n",
       "1599         35.0     3907      IR1    Inside      Blueste   10.0    24.0\n",
       "1907         24.0     1733      Reg    Inside      Blueste   10.0    24.0\n",
       "1908         24.0     1488      Reg    Inside      Blueste   10.0    24.0\n",
       "1909         24.0     1612      Reg    Inside      Blueste   10.0    24.0\n",
       "2209         24.0     1879      Reg   CulDSac      Blueste   10.0    24.0\n",
       "2569         24.0     1782      Reg    Inside      Blueste   10.0    24.0\n",
       "2571         35.0     3907      IR1    Inside      Blueste   10.0    24.0\n",
       "\n",
       "[2919 rows x 7 columns]"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2 = df[lot_columns].merge(neighborhood, \n",
    "                      left_on=\"Neighborhood\", right_index=True)\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>LotShape</th>\n",
       "      <th>LotConfig</th>\n",
       "      <th>Neighborhood</th>\n",
       "      <th>len</th>\n",
       "      <th>median</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>65.0</td>\n",
       "      <td>8450</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>68.0</td>\n",
       "      <td>11250</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>91.0</td>\n",
       "      <td>10652</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>75.0</td>\n",
       "      <td>9742</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>85.0</td>\n",
       "      <td>11049</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>112.0</td>\n",
       "      <td>10859</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>70.0</td>\n",
       "      <td>9200</td>\n",
       "      <td>IR1</td>\n",
       "      <td>CulDSac</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>89.0</td>\n",
       "      <td>11645</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>60.0</td>\n",
       "      <td>7200</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>64</th>\n",
       "      <td>70.0</td>\n",
       "      <td>9375</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>67</th>\n",
       "      <td>72.0</td>\n",
       "      <td>10665</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>89</th>\n",
       "      <td>60.0</td>\n",
       "      <td>8070</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>94</th>\n",
       "      <td>69.0</td>\n",
       "      <td>9337</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>78.0</td>\n",
       "      <td>10264</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>103</th>\n",
       "      <td>94.0</td>\n",
       "      <td>10402</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>112</th>\n",
       "      <td>77.0</td>\n",
       "      <td>9965</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>119</th>\n",
       "      <td>65.0</td>\n",
       "      <td>8461</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>138</th>\n",
       "      <td>73.0</td>\n",
       "      <td>9066</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>139</th>\n",
       "      <td>65.0</td>\n",
       "      <td>15426</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>141</th>\n",
       "      <td>78.0</td>\n",
       "      <td>11645</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>143</th>\n",
       "      <td>78.0</td>\n",
       "      <td>10335</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>150</th>\n",
       "      <td>120.0</td>\n",
       "      <td>10356</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>192</th>\n",
       "      <td>68.0</td>\n",
       "      <td>9017</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>60.0</td>\n",
       "      <td>7180</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>203</th>\n",
       "      <td>70.0</td>\n",
       "      <td>4438</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>213</th>\n",
       "      <td>43.0</td>\n",
       "      <td>13568</td>\n",
       "      <td>IR2</td>\n",
       "      <td>CulDSac</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>214</th>\n",
       "      <td>70.0</td>\n",
       "      <td>10900</td>\n",
       "      <td>IR1</td>\n",
       "      <td>FR2</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>216</th>\n",
       "      <td>65.0</td>\n",
       "      <td>8450</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>220</th>\n",
       "      <td>73.0</td>\n",
       "      <td>8990</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>233</th>\n",
       "      <td>75.0</td>\n",
       "      <td>10650</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>267.0</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1559</th>\n",
       "      <td>60.0</td>\n",
       "      <td>6048</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1591</th>\n",
       "      <td>67.0</td>\n",
       "      <td>4853</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1592</th>\n",
       "      <td>60.0</td>\n",
       "      <td>7890</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1593</th>\n",
       "      <td>60.0</td>\n",
       "      <td>7200</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1594</th>\n",
       "      <td>51.0</td>\n",
       "      <td>9839</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1896</th>\n",
       "      <td>70.0</td>\n",
       "      <td>6300</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1897</th>\n",
       "      <td>43.0</td>\n",
       "      <td>5707</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2197</th>\n",
       "      <td>60.0</td>\n",
       "      <td>7290</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2198</th>\n",
       "      <td>64.0</td>\n",
       "      <td>7804</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2475</th>\n",
       "      <td>59.0</td>\n",
       "      <td>4484</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2497</th>\n",
       "      <td>60.0</td>\n",
       "      <td>5400</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2557</th>\n",
       "      <td>60.0</td>\n",
       "      <td>10890</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2805</th>\n",
       "      <td>50.0</td>\n",
       "      <td>5220</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2806</th>\n",
       "      <td>50.0</td>\n",
       "      <td>5500</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2873</th>\n",
       "      <td>60.0</td>\n",
       "      <td>10890</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2874</th>\n",
       "      <td>58.0</td>\n",
       "      <td>6430</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2875</th>\n",
       "      <td>43.0</td>\n",
       "      <td>7000</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2876</th>\n",
       "      <td>69.0</td>\n",
       "      <td>4899</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2878</th>\n",
       "      <td>84.0</td>\n",
       "      <td>10164</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2879</th>\n",
       "      <td>51.0</td>\n",
       "      <td>6191</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Corner</td>\n",
       "      <td>SWISU</td>\n",
       "      <td>48.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>599</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1950</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>956</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1300</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1598</th>\n",
       "      <td>35.0</td>\n",
       "      <td>3907</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1599</th>\n",
       "      <td>35.0</td>\n",
       "      <td>3907</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1907</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1733</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1908</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1488</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1909</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1612</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2209</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1879</td>\n",
       "      <td>Reg</td>\n",
       "      <td>CulDSac</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2569</th>\n",
       "      <td>24.0</td>\n",
       "      <td>1782</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2571</th>\n",
       "      <td>35.0</td>\n",
       "      <td>3907</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Blueste</td>\n",
       "      <td>10.0</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2919 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      LotFrontage  LotArea LotShape LotConfig Neighborhood    len  median\n",
       "0            65.0     8450      Reg    Inside      CollgCr  267.0    70.0\n",
       "2            68.0    11250      IR1    Inside      CollgCr  267.0    70.0\n",
       "13           91.0    10652      IR1    Inside      CollgCr  267.0    70.0\n",
       "22           75.0     9742      Reg    Inside      CollgCr  267.0    70.0\n",
       "32           85.0    11049      Reg    Corner      CollgCr  267.0    70.0\n",
       "36          112.0    10859      Reg    Corner      CollgCr  267.0    70.0\n",
       "43           70.0     9200      IR1   CulDSac      CollgCr  267.0    70.0\n",
       "57           89.0    11645      IR1    Corner      CollgCr  267.0    70.0\n",
       "59           60.0     7200      Reg    Inside      CollgCr  267.0    70.0\n",
       "64           70.0     9375      Reg    Inside      CollgCr  267.0    70.0\n",
       "67           72.0    10665      IR1    Inside      CollgCr  267.0    70.0\n",
       "89           60.0     8070      Reg    Inside      CollgCr  267.0    70.0\n",
       "94           69.0     9337      IR1    Inside      CollgCr  267.0    70.0\n",
       "96           78.0    10264      IR1    Inside      CollgCr  267.0    70.0\n",
       "103          94.0    10402      IR1    Corner      CollgCr  267.0    70.0\n",
       "112          77.0     9965      Reg    Inside      CollgCr  267.0    70.0\n",
       "119          65.0     8461      Reg    Inside      CollgCr  267.0    70.0\n",
       "138          73.0     9066      IR1    Inside      CollgCr  267.0    70.0\n",
       "139          65.0    15426      IR1    Inside      CollgCr  267.0    70.0\n",
       "141          78.0    11645      Reg    Inside      CollgCr  267.0    70.0\n",
       "143          78.0    10335      IR1    Inside      CollgCr  267.0    70.0\n",
       "150         120.0    10356      Reg    Corner      CollgCr  267.0    70.0\n",
       "192          68.0     9017      IR1    Inside      CollgCr  267.0    70.0\n",
       "194          60.0     7180      IR1    Inside      CollgCr  267.0    70.0\n",
       "203          70.0     4438      Reg    Inside      CollgCr  267.0    70.0\n",
       "213          43.0    13568      IR2   CulDSac      CollgCr  267.0    70.0\n",
       "214          70.0    10900      IR1       FR2      CollgCr  267.0    70.0\n",
       "216          65.0     8450      Reg    Inside      CollgCr  267.0    70.0\n",
       "220          73.0     8990      IR1    Inside      CollgCr  267.0    70.0\n",
       "233          75.0    10650      Reg    Corner      CollgCr  267.0    70.0\n",
       "...           ...      ...      ...       ...          ...    ...     ...\n",
       "1559         60.0     6048      Reg    Corner        SWISU   48.0    60.0\n",
       "1591         67.0     4853      Reg    Inside        SWISU   48.0    60.0\n",
       "1592         60.0     7890      Reg    Corner        SWISU   48.0    60.0\n",
       "1593         60.0     7200      Reg    Inside        SWISU   48.0    60.0\n",
       "1594         51.0     9839      Reg    Inside        SWISU   48.0    60.0\n",
       "1896         70.0     6300      Reg    Corner        SWISU   48.0    60.0\n",
       "1897         43.0     5707      Reg    Inside        SWISU   48.0    60.0\n",
       "2197         60.0     7290      Reg    Corner        SWISU   48.0    60.0\n",
       "2198         64.0     7804      Reg    Inside        SWISU   48.0    60.0\n",
       "2475         59.0     4484      IR1    Corner        SWISU   48.0    60.0\n",
       "2497         60.0     5400      Reg    Inside        SWISU   48.0    60.0\n",
       "2557         60.0    10890      Reg    Inside        SWISU   48.0    60.0\n",
       "2805         50.0     5220      IR1    Inside        SWISU   48.0    60.0\n",
       "2806         50.0     5500      Reg    Inside        SWISU   48.0    60.0\n",
       "2873         60.0    10890      Reg    Inside        SWISU   48.0    60.0\n",
       "2874         58.0     6430      Reg    Corner        SWISU   48.0    60.0\n",
       "2875         43.0     7000      Reg    Inside        SWISU   48.0    60.0\n",
       "2876         69.0     4899      Reg    Corner        SWISU   48.0    60.0\n",
       "2878         84.0    10164      Reg    Inside        SWISU   48.0    60.0\n",
       "2879         51.0     6191      Reg    Corner        SWISU   48.0    60.0\n",
       "599          24.0     1950      Reg    Inside      Blueste   10.0    24.0\n",
       "956          24.0     1300      Reg    Inside      Blueste   10.0    24.0\n",
       "1598         35.0     3907      IR1    Inside      Blueste   10.0    24.0\n",
       "1599         35.0     3907      IR1    Inside      Blueste   10.0    24.0\n",
       "1907         24.0     1733      Reg    Inside      Blueste   10.0    24.0\n",
       "1908         24.0     1488      Reg    Inside      Blueste   10.0    24.0\n",
       "1909         24.0     1612      Reg    Inside      Blueste   10.0    24.0\n",
       "2209         24.0     1879      Reg   CulDSac      Blueste   10.0    24.0\n",
       "2569         24.0     1782      Reg    Inside      Blueste   10.0    24.0\n",
       "2571         35.0     3907      IR1    Inside      Blueste   10.0    24.0\n",
       "\n",
       "[2919 rows x 7 columns]"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "idx = df[df.LotFrontage.isnull()].index\n",
    "df.loc[idx, \"LotFrontage\"] = df2.loc[idx, \"median\"]\n",
    "df[lot_columns].merge(neighborhood, \n",
    "                      left_on=\"Neighborhood\", right_index=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  4\n",
      "\n",
      "Missing values per column:\n",
      "MiscFeature    2814\n",
      "Alley          2721\n",
      "Fence          2348\n",
      "FireplaceQu    1420\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Fence: Fence quality\n",
    "We can replace any missing vlues for Fence and MiscFeature with ‘None’ as they probably don’t have this feature with their property."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MnPrv    329\n",
       "GdPrv    118\n",
       "GdWo     112\n",
       "MnWw      12\n",
       "Name: Fence, dtype: int64"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.Fence.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "replace_with(df, \"Fence\", \"None\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  3\n",
      "\n",
      "Missing values per column:\n",
      "MiscFeature    2814\n",
      "Alley          2721\n",
      "FireplaceQu    1420\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### MiscFeature"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  2\n",
      "\n",
      "Missing values per column:\n",
      "Alley          2721\n",
      "FireplaceQu    1420\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "replace_with(df, \"MiscFeature\", \"None\")\n",
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Fireplace\n",
    "\n",
    "- Fireplaces: Number of fireplaces\n",
    "- FireplaceQu: Fireplace quality. FireplaceQu denotes the fireplace quality.\n",
    "\n",
    "We can check to see if any of the missing values for FireplaceQu come from houses that recorded having at least 1 fireplace."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Fireplaces', 'FireplaceQu']"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fire_columns = find_columns(df, \"fire\")\n",
    "fire_columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Fireplaces</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FireplaceQu</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Ex</th>\n",
       "      <td>37.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fa</th>\n",
       "      <td>63.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Gd</th>\n",
       "      <td>627.0</td>\n",
       "      <td>112.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Po</th>\n",
       "      <td>46.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TA</th>\n",
       "      <td>495.0</td>\n",
       "      <td>92.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Fireplaces       1      2    3    4\n",
       "FireplaceQu                        \n",
       "Ex            37.0    5.0  1.0  NaN\n",
       "Fa            63.0   10.0  1.0  NaN\n",
       "Gd           627.0  112.0  5.0  NaN\n",
       "Po            46.0    NaN  NaN  NaN\n",
       "TA           495.0   92.0  4.0  1.0"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby([\"FireplaceQu\", \"Fireplaces\"]).Id.count().unstack()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Fireplaces</th>\n",
       "      <th>FireplaceQu</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>56</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>63</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2868</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2871</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2872</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2873</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2874</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2876</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2879</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2886</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2887</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2888</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2889</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2890</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2891</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2892</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2893</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2897</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2898</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2899</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2901</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2904</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2905</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2907</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2908</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2909</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2910</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2912</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2913</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2914</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2915</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2917</th>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1420 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Fireplaces FireplaceQu\n",
       "0              0         NaN\n",
       "5              0         NaN\n",
       "10             0         NaN\n",
       "12             0         NaN\n",
       "15             0         NaN\n",
       "17             0         NaN\n",
       "18             0         NaN\n",
       "19             0         NaN\n",
       "26             0         NaN\n",
       "29             0         NaN\n",
       "30             0         NaN\n",
       "31             0         NaN\n",
       "32             0         NaN\n",
       "36             0         NaN\n",
       "38             0         NaN\n",
       "39             0         NaN\n",
       "42             0         NaN\n",
       "43             0         NaN\n",
       "44             0         NaN\n",
       "47             0         NaN\n",
       "48             0         NaN\n",
       "49             0         NaN\n",
       "50             0         NaN\n",
       "52             0         NaN\n",
       "56             0         NaN\n",
       "57             0         NaN\n",
       "59             0         NaN\n",
       "60             0         NaN\n",
       "61             0         NaN\n",
       "63             0         NaN\n",
       "...          ...         ...\n",
       "2868           0         NaN\n",
       "2871           0         NaN\n",
       "2872           0         NaN\n",
       "2873           0         NaN\n",
       "2874           0         NaN\n",
       "2876           0         NaN\n",
       "2879           0         NaN\n",
       "2886           0         NaN\n",
       "2887           0         NaN\n",
       "2888           0         NaN\n",
       "2889           0         NaN\n",
       "2890           0         NaN\n",
       "2891           0         NaN\n",
       "2892           0         NaN\n",
       "2893           0         NaN\n",
       "2897           0         NaN\n",
       "2898           0         NaN\n",
       "2899           0         NaN\n",
       "2901           0         NaN\n",
       "2904           0         NaN\n",
       "2905           0         NaN\n",
       "2907           0         NaN\n",
       "2908           0         NaN\n",
       "2909           0         NaN\n",
       "2910           0         NaN\n",
       "2912           0         NaN\n",
       "2913           0         NaN\n",
       "2914           0         NaN\n",
       "2915           0         NaN\n",
       "2917           0         NaN\n",
       "\n",
       "[1420 rows x 2 columns]"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.FireplaceQu.isnull()][fire_columns]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All the houses that have missing values did not record having any fireplaces. We can replace the NA’s with ‘None’ since these houses don’t have any fireplaces at all."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "replace_with(df, \"FireplaceQu\", \"None\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  1\n",
      "\n",
      "Missing values per column:\n",
      "Alley    2721\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Alley: Type of alley access\n",
    "\n",
    "There are 2721 missing values for Alley and only 2 potential options - Grvl and Pave. We can fill ‘None’ for any of the houses with NA’s as these houses must not have any type of alley access.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total number of records:  2919\n",
      "No of columns with null values:  0\n",
      "\n",
      "Missing values per column:\n",
      "Series([], dtype: int64)\n"
     ]
    }
   ],
   "source": [
    "replace_with(df, \"Alley\", \"None\")\n",
    "find_null_columns()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Congratulations! There is no more missing values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's add back the SalePrice column to the dataset. Note for the testing data, there is not SalePrice. So for those, the field will be null.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Id</th>\n",
       "      <th>MSSubClass</th>\n",
       "      <th>MSZoning</th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>Street</th>\n",
       "      <th>Alley</th>\n",
       "      <th>LotShape</th>\n",
       "      <th>LandContour</th>\n",
       "      <th>LotConfig</th>\n",
       "      <th>LandSlope</th>\n",
       "      <th>Neighborhood</th>\n",
       "      <th>Condition1</th>\n",
       "      <th>Condition2</th>\n",
       "      <th>BldgType</th>\n",
       "      <th>HouseStyle</th>\n",
       "      <th>OverallQual</th>\n",
       "      <th>OverallCond</th>\n",
       "      <th>YearBuilt</th>\n",
       "      <th>YearRemodAdd</th>\n",
       "      <th>RoofStyle</th>\n",
       "      <th>RoofMatl</th>\n",
       "      <th>Exterior1st</th>\n",
       "      <th>Exterior2nd</th>\n",
       "      <th>MasVnrType</th>\n",
       "      <th>MasVnrArea</th>\n",
       "      <th>ExterQual</th>\n",
       "      <th>ExterCond</th>\n",
       "      <th>Foundation</th>\n",
       "      <th>BsmtQual</th>\n",
       "      <th>BsmtCond</th>\n",
       "      <th>BsmtExposure</th>\n",
       "      <th>BsmtFinType1</th>\n",
       "      <th>BsmtFinSF1</th>\n",
       "      <th>BsmtFinType2</th>\n",
       "      <th>BsmtFinSF2</th>\n",
       "      <th>BsmtUnfSF</th>\n",
       "      <th>TotalBsmtSF</th>\n",
       "      <th>Heating</th>\n",
       "      <th>HeatingQC</th>\n",
       "      <th>CentralAir</th>\n",
       "      <th>Electrical</th>\n",
       "      <th>1stFlrSF</th>\n",
       "      <th>2ndFlrSF</th>\n",
       "      <th>LowQualFinSF</th>\n",
       "      <th>GrLivArea</th>\n",
       "      <th>BsmtFullBath</th>\n",
       "      <th>BsmtHalfBath</th>\n",
       "      <th>FullBath</th>\n",
       "      <th>HalfBath</th>\n",
       "      <th>BedroomAbvGr</th>\n",
       "      <th>KitchenAbvGr</th>\n",
       "      <th>KitchenQual</th>\n",
       "      <th>TotRmsAbvGrd</th>\n",
       "      <th>Functional</th>\n",
       "      <th>Fireplaces</th>\n",
       "      <th>FireplaceQu</th>\n",
       "      <th>GarageType</th>\n",
       "      <th>GarageYrBlt</th>\n",
       "      <th>GarageFinish</th>\n",
       "      <th>GarageCars</th>\n",
       "      <th>GarageArea</th>\n",
       "      <th>GarageQual</th>\n",
       "      <th>GarageCond</th>\n",
       "      <th>PavedDrive</th>\n",
       "      <th>WoodDeckSF</th>\n",
       "      <th>OpenPorchSF</th>\n",
       "      <th>EnclosedPorch</th>\n",
       "      <th>3SsnPorch</th>\n",
       "      <th>ScreenPorch</th>\n",
       "      <th>PoolArea</th>\n",
       "      <th>PoolQC</th>\n",
       "      <th>Fence</th>\n",
       "      <th>MiscFeature</th>\n",
       "      <th>MiscVal</th>\n",
       "      <th>MoSold</th>\n",
       "      <th>YrSold</th>\n",
       "      <th>SaleType</th>\n",
       "      <th>SaleCondition</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>65.0</td>\n",
       "      <td>8450</td>\n",
       "      <td>Pave</td>\n",
       "      <td>None</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>2003</td>\n",
       "      <td>2003</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>BrkFace</td>\n",
       "      <td>196.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>No</td>\n",
       "      <td>GLQ</td>\n",
       "      <td>706.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>150.0</td>\n",
       "      <td>856.0</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>856</td>\n",
       "      <td>854</td>\n",
       "      <td>0</td>\n",
       "      <td>1710</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>8</td>\n",
       "      <td>Typ</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>2003.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>2.0</td>\n",
       "      <td>548.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>61</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>80.0</td>\n",
       "      <td>9600</td>\n",
       "      <td>Pave</td>\n",
       "      <td>None</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>FR2</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>Veenker</td>\n",
       "      <td>Feedr</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>1Story</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>1976</td>\n",
       "      <td>1976</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>MetalSd</td>\n",
       "      <td>MetalSd</td>\n",
       "      <td>None</td>\n",
       "      <td>0.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>CBlock</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>Gd</td>\n",
       "      <td>ALQ</td>\n",
       "      <td>978.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>284.0</td>\n",
       "      <td>1262.0</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>1262</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1262</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>6</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>1976.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>2.0</td>\n",
       "      <td>460.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>298</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>2007</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>68.0</td>\n",
       "      <td>11250</td>\n",
       "      <td>Pave</td>\n",
       "      <td>None</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>2001</td>\n",
       "      <td>2002</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>BrkFace</td>\n",
       "      <td>162.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>Mn</td>\n",
       "      <td>GLQ</td>\n",
       "      <td>486.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>434.0</td>\n",
       "      <td>920.0</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>920</td>\n",
       "      <td>866</td>\n",
       "      <td>0</td>\n",
       "      <td>1786</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>6</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>2001.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>2.0</td>\n",
       "      <td>608.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>42</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>70</td>\n",
       "      <td>RL</td>\n",
       "      <td>60.0</td>\n",
       "      <td>9550</td>\n",
       "      <td>Pave</td>\n",
       "      <td>None</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>Corner</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>Crawfor</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>1915</td>\n",
       "      <td>1970</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>Wd Sdng</td>\n",
       "      <td>Wd Shng</td>\n",
       "      <td>None</td>\n",
       "      <td>0.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>BrkTil</td>\n",
       "      <td>TA</td>\n",
       "      <td>Gd</td>\n",
       "      <td>No</td>\n",
       "      <td>ALQ</td>\n",
       "      <td>216.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>540.0</td>\n",
       "      <td>756.0</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Gd</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>961</td>\n",
       "      <td>756</td>\n",
       "      <td>0</td>\n",
       "      <td>1717</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>7</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>Detchd</td>\n",
       "      <td>1998.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>3.0</td>\n",
       "      <td>642.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>35</td>\n",
       "      <td>272</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2006</td>\n",
       "      <td>WD</td>\n",
       "      <td>Abnorml</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>84.0</td>\n",
       "      <td>14260</td>\n",
       "      <td>Pave</td>\n",
       "      <td>None</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>FR2</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>NoRidge</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>8</td>\n",
       "      <td>5</td>\n",
       "      <td>2000</td>\n",
       "      <td>2000</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>BrkFace</td>\n",
       "      <td>350.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>Av</td>\n",
       "      <td>GLQ</td>\n",
       "      <td>655.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>490.0</td>\n",
       "      <td>1145.0</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>1145</td>\n",
       "      <td>1053</td>\n",
       "      <td>0</td>\n",
       "      <td>2198</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>9</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>2000.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>3.0</td>\n",
       "      <td>836.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>192</td>\n",
       "      <td>84</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Id  MSSubClass MSZoning  LotFrontage  LotArea Street Alley LotShape  \\\n",
       "0   1          60       RL         65.0     8450   Pave  None      Reg   \n",
       "1   2          20       RL         80.0     9600   Pave  None      Reg   \n",
       "2   3          60       RL         68.0    11250   Pave  None      IR1   \n",
       "3   4          70       RL         60.0     9550   Pave  None      IR1   \n",
       "4   5          60       RL         84.0    14260   Pave  None      IR1   \n",
       "\n",
       "  LandContour LotConfig LandSlope Neighborhood Condition1 Condition2 BldgType  \\\n",
       "0         Lvl    Inside       Gtl      CollgCr       Norm       Norm     1Fam   \n",
       "1         Lvl       FR2       Gtl      Veenker      Feedr       Norm     1Fam   \n",
       "2         Lvl    Inside       Gtl      CollgCr       Norm       Norm     1Fam   \n",
       "3         Lvl    Corner       Gtl      Crawfor       Norm       Norm     1Fam   \n",
       "4         Lvl       FR2       Gtl      NoRidge       Norm       Norm     1Fam   \n",
       "\n",
       "  HouseStyle  OverallQual  OverallCond  YearBuilt  YearRemodAdd RoofStyle  \\\n",
       "0     2Story            7            5       2003          2003     Gable   \n",
       "1     1Story            6            8       1976          1976     Gable   \n",
       "2     2Story            7            5       2001          2002     Gable   \n",
       "3     2Story            7            5       1915          1970     Gable   \n",
       "4     2Story            8            5       2000          2000     Gable   \n",
       "\n",
       "  RoofMatl Exterior1st Exterior2nd MasVnrType  MasVnrArea ExterQual ExterCond  \\\n",
       "0  CompShg     VinylSd     VinylSd    BrkFace       196.0        Gd        TA   \n",
       "1  CompShg     MetalSd     MetalSd       None         0.0        TA        TA   \n",
       "2  CompShg     VinylSd     VinylSd    BrkFace       162.0        Gd        TA   \n",
       "3  CompShg     Wd Sdng     Wd Shng       None         0.0        TA        TA   \n",
       "4  CompShg     VinylSd     VinylSd    BrkFace       350.0        Gd        TA   \n",
       "\n",
       "  Foundation BsmtQual BsmtCond BsmtExposure BsmtFinType1  BsmtFinSF1  \\\n",
       "0      PConc       Gd       TA           No          GLQ       706.0   \n",
       "1     CBlock       Gd       TA           Gd          ALQ       978.0   \n",
       "2      PConc       Gd       TA           Mn          GLQ       486.0   \n",
       "3     BrkTil       TA       Gd           No          ALQ       216.0   \n",
       "4      PConc       Gd       TA           Av          GLQ       655.0   \n",
       "\n",
       "  BsmtFinType2  BsmtFinSF2  BsmtUnfSF  TotalBsmtSF Heating HeatingQC  \\\n",
       "0          Unf         0.0      150.0        856.0    GasA        Ex   \n",
       "1          Unf         0.0      284.0       1262.0    GasA        Ex   \n",
       "2          Unf         0.0      434.0        920.0    GasA        Ex   \n",
       "3          Unf         0.0      540.0        756.0    GasA        Gd   \n",
       "4          Unf         0.0      490.0       1145.0    GasA        Ex   \n",
       "\n",
       "  CentralAir Electrical  1stFlrSF  2ndFlrSF  LowQualFinSF  GrLivArea  \\\n",
       "0          Y      SBrkr       856       854             0       1710   \n",
       "1          Y      SBrkr      1262         0             0       1262   \n",
       "2          Y      SBrkr       920       866             0       1786   \n",
       "3          Y      SBrkr       961       756             0       1717   \n",
       "4          Y      SBrkr      1145      1053             0       2198   \n",
       "\n",
       "   BsmtFullBath  BsmtHalfBath  FullBath  HalfBath  BedroomAbvGr  KitchenAbvGr  \\\n",
       "0           1.0           0.0         2         1             3             1   \n",
       "1           0.0           1.0         2         0             3             1   \n",
       "2           1.0           0.0         2         1             3             1   \n",
       "3           1.0           0.0         1         0             3             1   \n",
       "4           1.0           0.0         2         1             4             1   \n",
       "\n",
       "  KitchenQual  TotRmsAbvGrd Functional  Fireplaces FireplaceQu GarageType  \\\n",
       "0          Gd             8        Typ           0        None     Attchd   \n",
       "1          TA             6        Typ           1          TA     Attchd   \n",
       "2          Gd             6        Typ           1          TA     Attchd   \n",
       "3          Gd             7        Typ           1          Gd     Detchd   \n",
       "4          Gd             9        Typ           1          TA     Attchd   \n",
       "\n",
       "   GarageYrBlt GarageFinish  GarageCars  GarageArea GarageQual GarageCond  \\\n",
       "0       2003.0          RFn         2.0       548.0         TA         TA   \n",
       "1       1976.0          RFn         2.0       460.0         TA         TA   \n",
       "2       2001.0          RFn         2.0       608.0         TA         TA   \n",
       "3       1998.0          Unf         3.0       642.0         TA         TA   \n",
       "4       2000.0          RFn         3.0       836.0         TA         TA   \n",
       "\n",
       "  PavedDrive  WoodDeckSF  OpenPorchSF  EnclosedPorch  3SsnPorch  ScreenPorch  \\\n",
       "0          Y           0           61              0          0            0   \n",
       "1          Y         298            0              0          0            0   \n",
       "2          Y           0           42              0          0            0   \n",
       "3          Y           0           35            272          0            0   \n",
       "4          Y         192           84              0          0            0   \n",
       "\n",
       "   PoolArea PoolQC Fence MiscFeature  MiscVal  MoSold  YrSold SaleType  \\\n",
       "0         0   None  None        None        0       2    2008       WD   \n",
       "1         0   None  None        None        0       5    2007       WD   \n",
       "2         0   None  None        None        0       9    2008       WD   \n",
       "3         0   None  None        None        0       2    2006       WD   \n",
       "4         0   None  None        None        0      12    2008       WD   \n",
       "\n",
       "  SaleCondition  \n",
       "0        Normal  \n",
       "1        Normal  \n",
       "2        Normal  \n",
       "3       Abnorml  \n",
       "4        Normal  "
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Id</th>\n",
       "      <th>MSSubClass</th>\n",
       "      <th>MSZoning</th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>Street</th>\n",
       "      <th>Alley</th>\n",
       "      <th>LotShape</th>\n",
       "      <th>LandContour</th>\n",
       "      <th>LotConfig</th>\n",
       "      <th>LandSlope</th>\n",
       "      <th>Neighborhood</th>\n",
       "      <th>Condition1</th>\n",
       "      <th>Condition2</th>\n",
       "      <th>BldgType</th>\n",
       "      <th>HouseStyle</th>\n",
       "      <th>OverallQual</th>\n",
       "      <th>OverallCond</th>\n",
       "      <th>YearBuilt</th>\n",
       "      <th>YearRemodAdd</th>\n",
       "      <th>RoofStyle</th>\n",
       "      <th>RoofMatl</th>\n",
       "      <th>Exterior1st</th>\n",
       "      <th>Exterior2nd</th>\n",
       "      <th>MasVnrType</th>\n",
       "      <th>MasVnrArea</th>\n",
       "      <th>ExterQual</th>\n",
       "      <th>ExterCond</th>\n",
       "      <th>Foundation</th>\n",
       "      <th>BsmtQual</th>\n",
       "      <th>BsmtCond</th>\n",
       "      <th>BsmtExposure</th>\n",
       "      <th>BsmtFinType1</th>\n",
       "      <th>BsmtFinSF1</th>\n",
       "      <th>BsmtFinType2</th>\n",
       "      <th>BsmtFinSF2</th>\n",
       "      <th>BsmtUnfSF</th>\n",
       "      <th>TotalBsmtSF</th>\n",
       "      <th>Heating</th>\n",
       "      <th>HeatingQC</th>\n",
       "      <th>CentralAir</th>\n",
       "      <th>Electrical</th>\n",
       "      <th>1stFlrSF</th>\n",
       "      <th>2ndFlrSF</th>\n",
       "      <th>LowQualFinSF</th>\n",
       "      <th>GrLivArea</th>\n",
       "      <th>BsmtFullBath</th>\n",
       "      <th>BsmtHalfBath</th>\n",
       "      <th>FullBath</th>\n",
       "      <th>HalfBath</th>\n",
       "      <th>BedroomAbvGr</th>\n",
       "      <th>KitchenAbvGr</th>\n",
       "      <th>KitchenQual</th>\n",
       "      <th>TotRmsAbvGrd</th>\n",
       "      <th>Functional</th>\n",
       "      <th>Fireplaces</th>\n",
       "      <th>FireplaceQu</th>\n",
       "      <th>GarageType</th>\n",
       "      <th>GarageYrBlt</th>\n",
       "      <th>GarageFinish</th>\n",
       "      <th>GarageCars</th>\n",
       "      <th>GarageArea</th>\n",
       "      <th>GarageQual</th>\n",
       "      <th>GarageCond</th>\n",
       "      <th>PavedDrive</th>\n",
       "      <th>WoodDeckSF</th>\n",
       "      <th>OpenPorchSF</th>\n",
       "      <th>EnclosedPorch</th>\n",
       "      <th>3SsnPorch</th>\n",
       "      <th>ScreenPorch</th>\n",
       "      <th>PoolArea</th>\n",
       "      <th>PoolQC</th>\n",
       "      <th>Fence</th>\n",
       "      <th>MiscFeature</th>\n",
       "      <th>MiscVal</th>\n",
       "      <th>MoSold</th>\n",
       "      <th>YrSold</th>\n",
       "      <th>SaleType</th>\n",
       "      <th>SaleCondition</th>\n",
       "      <th>SalesPrice</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>65.0</td>\n",
       "      <td>8450</td>\n",
       "      <td>Pave</td>\n",
       "      <td>None</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>2003</td>\n",
       "      <td>2003</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>BrkFace</td>\n",
       "      <td>196.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>No</td>\n",
       "      <td>GLQ</td>\n",
       "      <td>706.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>150.0</td>\n",
       "      <td>856.0</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>856</td>\n",
       "      <td>854</td>\n",
       "      <td>0</td>\n",
       "      <td>1710</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>8</td>\n",
       "      <td>Typ</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>2003.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>2.0</td>\n",
       "      <td>548.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>61</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>208500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>80.0</td>\n",
       "      <td>9600</td>\n",
       "      <td>Pave</td>\n",
       "      <td>None</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>FR2</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>Veenker</td>\n",
       "      <td>Feedr</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>1Story</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>1976</td>\n",
       "      <td>1976</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>MetalSd</td>\n",
       "      <td>MetalSd</td>\n",
       "      <td>None</td>\n",
       "      <td>0.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>CBlock</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>Gd</td>\n",
       "      <td>ALQ</td>\n",
       "      <td>978.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>284.0</td>\n",
       "      <td>1262.0</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>1262</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1262</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>6</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>1976.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>2.0</td>\n",
       "      <td>460.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>298</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>2007</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>181500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>68.0</td>\n",
       "      <td>11250</td>\n",
       "      <td>Pave</td>\n",
       "      <td>None</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>CollgCr</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>2001</td>\n",
       "      <td>2002</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>BrkFace</td>\n",
       "      <td>162.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>Mn</td>\n",
       "      <td>GLQ</td>\n",
       "      <td>486.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>434.0</td>\n",
       "      <td>920.0</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>920</td>\n",
       "      <td>866</td>\n",
       "      <td>0</td>\n",
       "      <td>1786</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>6</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>2001.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>2.0</td>\n",
       "      <td>608.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>42</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>223500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>70</td>\n",
       "      <td>RL</td>\n",
       "      <td>60.0</td>\n",
       "      <td>9550</td>\n",
       "      <td>Pave</td>\n",
       "      <td>None</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>Corner</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>Crawfor</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>1915</td>\n",
       "      <td>1970</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>Wd Sdng</td>\n",
       "      <td>Wd Shng</td>\n",
       "      <td>None</td>\n",
       "      <td>0.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>BrkTil</td>\n",
       "      <td>TA</td>\n",
       "      <td>Gd</td>\n",
       "      <td>No</td>\n",
       "      <td>ALQ</td>\n",
       "      <td>216.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>540.0</td>\n",
       "      <td>756.0</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Gd</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>961</td>\n",
       "      <td>756</td>\n",
       "      <td>0</td>\n",
       "      <td>1717</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>7</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>Detchd</td>\n",
       "      <td>1998.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>3.0</td>\n",
       "      <td>642.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>35</td>\n",
       "      <td>272</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2006</td>\n",
       "      <td>WD</td>\n",
       "      <td>Abnorml</td>\n",
       "      <td>140000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>84.0</td>\n",
       "      <td>14260</td>\n",
       "      <td>Pave</td>\n",
       "      <td>None</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>FR2</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>NoRidge</td>\n",
       "      <td>Norm</td>\n",
       "      <td>Norm</td>\n",
       "      <td>1Fam</td>\n",
       "      <td>2Story</td>\n",
       "      <td>8</td>\n",
       "      <td>5</td>\n",
       "      <td>2000</td>\n",
       "      <td>2000</td>\n",
       "      <td>Gable</td>\n",
       "      <td>CompShg</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>VinylSd</td>\n",
       "      <td>BrkFace</td>\n",
       "      <td>350.0</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>PConc</td>\n",
       "      <td>Gd</td>\n",
       "      <td>TA</td>\n",
       "      <td>Av</td>\n",
       "      <td>GLQ</td>\n",
       "      <td>655.0</td>\n",
       "      <td>Unf</td>\n",
       "      <td>0.0</td>\n",
       "      <td>490.0</td>\n",
       "      <td>1145.0</td>\n",
       "      <td>GasA</td>\n",
       "      <td>Ex</td>\n",
       "      <td>Y</td>\n",
       "      <td>SBrkr</td>\n",
       "      <td>1145</td>\n",
       "      <td>1053</td>\n",
       "      <td>0</td>\n",
       "      <td>2198</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>Gd</td>\n",
       "      <td>9</td>\n",
       "      <td>Typ</td>\n",
       "      <td>1</td>\n",
       "      <td>TA</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>2000.0</td>\n",
       "      <td>RFn</td>\n",
       "      <td>3.0</td>\n",
       "      <td>836.0</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>192</td>\n",
       "      <td>84</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>250000.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Id  MSSubClass MSZoning  LotFrontage  LotArea Street Alley LotShape  \\\n",
       "0   1          60       RL         65.0     8450   Pave  None      Reg   \n",
       "1   2          20       RL         80.0     9600   Pave  None      Reg   \n",
       "2   3          60       RL         68.0    11250   Pave  None      IR1   \n",
       "3   4          70       RL         60.0     9550   Pave  None      IR1   \n",
       "4   5          60       RL         84.0    14260   Pave  None      IR1   \n",
       "\n",
       "  LandContour LotConfig LandSlope Neighborhood Condition1 Condition2 BldgType  \\\n",
       "0         Lvl    Inside       Gtl      CollgCr       Norm       Norm     1Fam   \n",
       "1         Lvl       FR2       Gtl      Veenker      Feedr       Norm     1Fam   \n",
       "2         Lvl    Inside       Gtl      CollgCr       Norm       Norm     1Fam   \n",
       "3         Lvl    Corner       Gtl      Crawfor       Norm       Norm     1Fam   \n",
       "4         Lvl       FR2       Gtl      NoRidge       Norm       Norm     1Fam   \n",
       "\n",
       "  HouseStyle  OverallQual  OverallCond  YearBuilt  YearRemodAdd RoofStyle  \\\n",
       "0     2Story            7            5       2003          2003     Gable   \n",
       "1     1Story            6            8       1976          1976     Gable   \n",
       "2     2Story            7            5       2001          2002     Gable   \n",
       "3     2Story            7            5       1915          1970     Gable   \n",
       "4     2Story            8            5       2000          2000     Gable   \n",
       "\n",
       "  RoofMatl Exterior1st Exterior2nd MasVnrType  MasVnrArea ExterQual ExterCond  \\\n",
       "0  CompShg     VinylSd     VinylSd    BrkFace       196.0        Gd        TA   \n",
       "1  CompShg     MetalSd     MetalSd       None         0.0        TA        TA   \n",
       "2  CompShg     VinylSd     VinylSd    BrkFace       162.0        Gd        TA   \n",
       "3  CompShg     Wd Sdng     Wd Shng       None         0.0        TA        TA   \n",
       "4  CompShg     VinylSd     VinylSd    BrkFace       350.0        Gd        TA   \n",
       "\n",
       "  Foundation BsmtQual BsmtCond BsmtExposure BsmtFinType1  BsmtFinSF1  \\\n",
       "0      PConc       Gd       TA           No          GLQ       706.0   \n",
       "1     CBlock       Gd       TA           Gd          ALQ       978.0   \n",
       "2      PConc       Gd       TA           Mn          GLQ       486.0   \n",
       "3     BrkTil       TA       Gd           No          ALQ       216.0   \n",
       "4      PConc       Gd       TA           Av          GLQ       655.0   \n",
       "\n",
       "  BsmtFinType2  BsmtFinSF2  BsmtUnfSF  TotalBsmtSF Heating HeatingQC  \\\n",
       "0          Unf         0.0      150.0        856.0    GasA        Ex   \n",
       "1          Unf         0.0      284.0       1262.0    GasA        Ex   \n",
       "2          Unf         0.0      434.0        920.0    GasA        Ex   \n",
       "3          Unf         0.0      540.0        756.0    GasA        Gd   \n",
       "4          Unf         0.0      490.0       1145.0    GasA        Ex   \n",
       "\n",
       "  CentralAir Electrical  1stFlrSF  2ndFlrSF  LowQualFinSF  GrLivArea  \\\n",
       "0          Y      SBrkr       856       854             0       1710   \n",
       "1          Y      SBrkr      1262         0             0       1262   \n",
       "2          Y      SBrkr       920       866             0       1786   \n",
       "3          Y      SBrkr       961       756             0       1717   \n",
       "4          Y      SBrkr      1145      1053             0       2198   \n",
       "\n",
       "   BsmtFullBath  BsmtHalfBath  FullBath  HalfBath  BedroomAbvGr  KitchenAbvGr  \\\n",
       "0           1.0           0.0         2         1             3             1   \n",
       "1           0.0           1.0         2         0             3             1   \n",
       "2           1.0           0.0         2         1             3             1   \n",
       "3           1.0           0.0         1         0             3             1   \n",
       "4           1.0           0.0         2         1             4             1   \n",
       "\n",
       "  KitchenQual  TotRmsAbvGrd Functional  Fireplaces FireplaceQu GarageType  \\\n",
       "0          Gd             8        Typ           0        None     Attchd   \n",
       "1          TA             6        Typ           1          TA     Attchd   \n",
       "2          Gd             6        Typ           1          TA     Attchd   \n",
       "3          Gd             7        Typ           1          Gd     Detchd   \n",
       "4          Gd             9        Typ           1          TA     Attchd   \n",
       "\n",
       "   GarageYrBlt GarageFinish  GarageCars  GarageArea GarageQual GarageCond  \\\n",
       "0       2003.0          RFn         2.0       548.0         TA         TA   \n",
       "1       1976.0          RFn         2.0       460.0         TA         TA   \n",
       "2       2001.0          RFn         2.0       608.0         TA         TA   \n",
       "3       1998.0          Unf         3.0       642.0         TA         TA   \n",
       "4       2000.0          RFn         3.0       836.0         TA         TA   \n",
       "\n",
       "  PavedDrive  WoodDeckSF  OpenPorchSF  EnclosedPorch  3SsnPorch  ScreenPorch  \\\n",
       "0          Y           0           61              0          0            0   \n",
       "1          Y         298            0              0          0            0   \n",
       "2          Y           0           42              0          0            0   \n",
       "3          Y           0           35            272          0            0   \n",
       "4          Y         192           84              0          0            0   \n",
       "\n",
       "   PoolArea PoolQC Fence MiscFeature  MiscVal  MoSold  YrSold SaleType  \\\n",
       "0         0   None  None        None        0       2    2008       WD   \n",
       "1         0   None  None        None        0       5    2007       WD   \n",
       "2         0   None  None        None        0       9    2008       WD   \n",
       "3         0   None  None        None        0       2    2006       WD   \n",
       "4         0   None  None        None        0      12    2008       WD   \n",
       "\n",
       "  SaleCondition  SalesPrice  \n",
       "0        Normal    208500.0  \n",
       "1        Normal    181500.0  \n",
       "2        Normal    223500.0  \n",
       "3       Abnorml    140000.0  \n",
       "4        Normal    250000.0  "
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[\"SalesPrice\"] = np.nan\n",
    "df.loc[0:training.shape[0], \"SalesPrice\"] = SalesPrice\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.to_csv(\"data/kaggle-house-prices/data_combined_cleaned.csv\", index = False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Visualization\n",
    "\n",
    "Plot the following for train.csv\n",
    "- Saleprice  - histogram or boxplot\n",
    "- YearBuilt - histogram (better) or frequency plot \n",
    "- Saleprice vs YearBuilt - horizontal bar chart \n",
    "- Saleprice  vs GarageArea  - scatter chart\n",
    "- Median Saleprice by SaleCondition and BldgType - heatmap\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x116a69ba8>"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nyszMSmmHC1CSfjzUbTAz25H19314h3uSxEte8pJjZs2a5XlNM7Oh82x/Mu1wAWr69OksWrRoqJth\nZrbDkvRQf/LtcFN8ZmbWGBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMys\nlBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslByg\nzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMys\nlBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslBygzMyslByg\nzMyslBygzMyslBygzMyslBygzMyslIYNdQOs/w487yb+9NyGAV8/esbZrLn/gjq2aGu77Dycuz9z\ndKF1mNmOwQGqgfzpuQ0sveDNA75+/6+dPajr+6Pj7B8WWr6Z7Tg8xWdmZqXkAGVmZqXUrwAl6ZOS\n7pP0G0l3SXpVL3mvlvTWPsq7WtLDqaw7JR3WQ74PSHpPf9rYX4sXL65ncWYASBrqJpg1nT4DVAoe\nxwIHR8QBwFHA8jrU/fGIOAg4G7iiRr3DImJeRFxTh7rMCnPGGWcAWZDqadttt91obW3tPm5vb6e9\nvb3Xa/Lb8OHDt0prb2+npaUFSbS0tHDAAQcwZcqULfJMmTKFM844g912222r62fOnLnVudbW1u62\nTpkyhSlTptDa2srMmTNZsGDBFn0eMWIEkhgxYgTHHHMMM2fO3CLvggULtkqr1p88felvPfnXZsqU\nKf2qa6Dt6+m6evS3UdTqayUNOKRfhURErxvwN8D3a6R/GrgDuBe4ElBKvxp4a9o/BPgZsBj4CTCp\nRp4RwJ/T/q3AJcAi4GPAucA/pnP7ADcDdwN3Anun9I+ndvwGOK8f/YlGNfWsHwzq+plXz6xTS3o2\n2DY2mjlz5sSwYcMCCEnd+7vttlsAMXz48AACiJaWlvj4xz8eJ598cndaZZO0VVpl23XXXbv3Dzzw\nwDjvvPO6j8eOHRurV6+Oo446KoBobW2NiRMnxoUXXhgTJ06MnXfeubv8k08+OSZMmBCjR4+OlpaW\nmDVrVkgKSXHhhRfGmWeeGS0tLSEpjjrqqJg0aVJMnDgxrrnmmujq6opp06bF/Pnzu/s8d+7cWLdu\nXbzzne8MIE488cRYv359dHV1xfjx42P8+PHR1dXVnVa5vmL+/Pkxbdq0XvP0pT9lzJ8/P8aPHx+T\nJk2Km266KW666aaYOHFijB8/vte6Btq+nq6bM2fOoPvbKGq9BvnfCWBx9PFeHRH9ClDtwF3A74DL\ngMNT+thcnq8Dx0Uu+ADDgZ8D41P6O4Cr8nnS/tuA22NzgLosV24+QN0OvCU2B7WRwNGV4Eg2GvwB\n8Lo++lPoD6ZIDlDl09bWFnPnzg0gJk6cGMOHD4/jjz8+JMXpp5++RYCaO3dudHZ2RmdnZ7S0tGyR\nXitQHX/88VsFq87OzoiILdIiIjo7O6O9vT2A6OrqioiIrq6u7vonTJgQnZ2d0dXVFV1dXTFhwoSQ\n1B3QKmXMnTu3+1wlb6XOyn6lzxWdnZ1x+umnR1tbW3daR0dHdHR0bPFa5cuqXFdpa095+tKfMjo7\nO6Ojo2OLfF1dXdHR0dFrXQNtX0/XtbW1Dbq/jaLWa5D/nQAWRT8CVGXU0ytJrcBrgSOB08im5dYA\nZ6ZAMRb4ckRcIOnqFCgeSAHqD6mYVuDxiDg65Tkc+BOwCvhIRNwr6VbgMxHxs1TvucBasinA+yNi\nclW7LiILhqtTUjvw+Yj4j6p8pwKnpsNDpp71gz77XFaDW2a+P/ecck8dW7O1HW2Z+bIvHMuUj9zA\n8ovfSktLC5s2bWLVqlWMHz+e1atXM2bMmO6869atY/To0QBs2rRpi/RRo0ZtVXalnLyWlhY2bty4\nxT2viKC1tbW7zPXr1zN8+HA2bNjATjvttMW1zz//PABtbW2VP9i6y2xtbWXNmjW0t7cTEaxfvx6A\nESNGsHHjRjZs2MCIESPYtGkT69atY+TIkQC0trby9NNPM2bMmO4yW1tbiYgt+lm5fuPGjd15nn/+\neYYPH95jnr70p4zW1laALfJt2LCBtrY2JPVY10Db19N1O+20U/fPZqD9bRS1XoPKdHT6/V0cEbP6\nKqdfn4OKiI1ko5tbJd1DFqQOAGZFxPIUSEZUXSbgvoiouQCC7B7UDTXS1/WnTbk6Ph8RW93Dqmr/\nlWQjLSRF0Z8FKkqjvPk36us7ECMuaePDk5fxMWD33XfnqaeeYvbs2UjinHPO6Q4UAPPmzWPGjBkA\n3H///d1v3vPmzesuT1L3m/zs2bO3qq9yfa30ZcuWsXbtWhYuXMiRRx7JwoULu+ufMGEC48aNY+HC\nhZDaunLlSlpaWrqD4IwZM5g3b173uUreSp0LFy5kxowZLFmyhHnz5vHRj360+/w555xDW1tbd3v2\n3HPPrdpYuT7f5kpbe8rTl/6UMWPGDNatW7dFvoULFzJ16tSafxgMtn09XdfW1jbo/jaKWq/B1KlT\nt72gvoZYwL7A9NzxZ4FLgSeAnclGLfcC58aWU3w7AUuAw1L6cKAzn6dGXbeSBb1aU3y/BE5M+21s\nnuK7HWhP6XsAu/fRnwEPW4eap/jKx/egfA+qv9f5HlQx96AOIZuq+y3ZQoTvAONSoPo98L/AV6sD\nVNo/CLiNbGHDfcD7q/NU1dVbgJoOdKU2LAb2Sun/F7gnbb8gLZ7opT8F/2iK4wBVTnPmzOkxuOQD\nSf6+06hRo2LUqFF9XlfZKoEvv40aNao7sEmK/fffPyZPnrxFnsmTJ8ecOXNi7NixNe9nVZ9raWnp\nbuvkyZNj8uTJ0dLSEp2dnVu8kc6ZMyfa2toCiLa2tjj66KO7761V8s6fP3+rtGr9ydOX/taTf20m\nT57cr7oG2r6erqtHfxtFrb5W0tL7cH3uQTWTWbNmxaJFi4a6GQPScfYPG+Ie1I40xWdm266/96D8\nJAkzMyslBygzMyslP828wQxmJd/oGcWvBNxl5+F9ZzIz6wcHqAYy+Hs7vjdkZo3DU3xmZlZKDlBm\nZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZK\nDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBm\nZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZK\nDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBmZlZKDlBm\nZlZKDlBmZlZKioihbsN2JWkVsGwImzAOeHII668H96E8mqEf7kM5bM8+TI2I8X1l2uEC1FCTtCgi\nZg11OwbDfSiPZuiH+1AOZeyDp/jMzKyUHKDMzKyUHKC2vyuHugF14D6URzP0w30oh9L1wfegzMys\nlDyCMjOzUnKAMjOzUnKA6idJV0laKeneXNpYST+V9FD6d9fcuXMkLZH0oKRjcumHSLonnftXSUrp\n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\n/j99goX0Jz7IVwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11aa5f2e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "xlims = training.SalePrice.min(), training.SalePrice.max()\n",
    "\n",
    "plt.subplot(2, 1, 1)\n",
    "training.SalePrice.plot.hist(bins = 50, xlim = xlims, sharex = True, title = \"Histogram of SalePrice\")\n",
    "plt.subplot(2, 1, 2)\n",
    "training.SalePrice.plot.box(vert = False, xlim = xlims, sharex = True, title = \"Boxplot of SalePrice\")\n",
    "plt.tight_layout()\n",
    "plt.xlabel(\"SalePrice\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x116b19748>"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x116b4c2e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "training.YearBuilt.plot.hist(bins = 50, title = \"Frequency by YearBuilt\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x11b13a3c8>"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nJEuBVXSrvkqSJEmSNoIJTySr6j+B54wQfxA4ZJQyZwBnjBBfAuw3QvxR4FUb3FhJkiRJ0pNMpa//\nkCRJkiRNAyaSkiRJkqS+mEhKkiRJkvpiIilJkiRJ6ouJpCRJkiSpLyaSkiRJkqS+mEhKkiRJkvpi\nIilJkiRJ6ouJpCRJkiSpLyaSkiRJkqS+mEhKkiRJkvpiIilJkiRJ6ouJpCRJkiSpLyaSkiRJkqS+\nmEhKkiRJkvpiIilJkiRJ6ouJpCRJkiSpLyaSkiRJkqS+mEhKkiRJkvpiIilJkiRJ6ouJpCRJkiSp\nLyaSkiRJkqS+mEhKkiRJkvpiIilJkiRJ6suMTiSTHJ7ku0mWJjlpstsjSZIkSTPBjE0kk2wK/CPw\nEmAf4LVJ9pncVkmSJEnS9DdjE0ngQGBpVf1nVf0MuBg4YpLbJEmSJEnT3kxOJHcFlvfs39NikiRJ\nkqQNkKqa7DYMRJKjgMOr6o1t//XAQVX15z3nHAcc13afDXx3whs6sz0d+NFkN0J9sc+mJ/tt+rHP\npif7bXqy36Yf+2zyPKOq5oznxM0G3ZJJtALYvWd/txb7H1V1LnDuRDZqNkmypKrmTXY7NH722fRk\nv00/9tn0ZL9NT/bb9GOfTQ8zeWrr9cDeSfZM8hRgPnDZJLdJkiRJkqa9GTsiWVVPJPlz4CpgU2Bh\nVd06yc2SJEmSpGlvxiaSAFV1BXDFZLdjFnPa8PRjn01P9tv0Y59NT/bb9GS/TT/22TQwYxfbkSRJ\nkiQNxky+R1KSJEmSNAAmkhq3JAuT3J/klp7Y/kmuSXJjkiVJDmzxzZNckOTmJLcnObmnzAEtvjTJ\nB5NkMq5nthil356T5FutH/4lyTY9x05uffPdJIf1xO23CdJPnyV5cZIbWvyGJC/qKWOfTaB+/621\n43sk+UmSv+yJ2W8TZD1+P/56O3ZrO/7UFrfPJlCfvyP9PDIFJNk9yVeT3Nb+/ZzY4jskWZzkzva8\nfU8ZP49MdVXlw8e4HsDvAs8DbumJfQl4Sdt+KfCvbfuPgIvb9tOAZcDctn8dcDAQ4Mqh8j4mtN+u\nB17Qtt8AnN629wG+A2wB7Al8H9jUfpvSffZcYJe2vR+woqeMfTZF+63n+GeATwN/ab9N7T6jW1fi\nJuA5bX9Hfz9Oi37z88gUeAA7A89r21sD32ufOf4OOKnFTwLOatt+HpkGD0ckNW5V9XVg1fAwMPTX\n2m2BH/bEfynJZsCWwM+Ah5PsDGxTVddU99vgQuDIgTd+Fhul354FfL1tLwb+sG0fQfcf7mNVdRew\nFDjQfptY/fRZVf1HVQ39u7sV2DLJFvbZxOvz3xpJjgTuouu3oZj9NoH67LNDgZuq6jut7INVtcY+\nm3h99pufR6aAqlpZVd9u248AtwO70n3uuKCddgG/6AM/j0wDJpLaUG8D/m+S5cB7gaEpI58Bfgqs\nBH4AvLeqVtH90rinp/w9LaaJdSvdL2mAVwG7t+1dgeU95w31j/02+Ubrs15/CHy7qh7DPpsqRuy3\nJFsB7wDePex8+23yjfZv7VlAJbkqybeT/FWL22dTw2j95ueRKSbJXLrZNNcCO1XVynboXmCntu3n\nkWnARFIb6s+At1fV7sDbgfNa/EBgDbAL3ZSEv0jyzMlpokbwBuD4JDfQTTH52SS3R+s2Zp8l2Rc4\nC3jTJLRNoxut304Fzq6qn0xWwzSq0fpsM+C3gde151cmOWRymqgRjNZvfh6ZQtof0T4LvK2qHu49\n1kYY/TqJaWRGf4+kJsQC4MS2/WngY237j4AvVtXjwP1J/g2YB3wD2K2n/G7Aiglqq5qquoNumhZJ\nngW8rB1awdojXUP9swL7bVKN0Wck2Q34PHB0VX2/he2zKWCMfjsIOCrJ3wHbAT9P8ijdByz7bRKN\n0Wf3AF+vqh+1Y1fQ3af3CeyzSTdGv/l5ZIpIsjnd77hPVtXnWvi+JDtX1co2bfX+FvfzyDTgiKQ2\n1A+BF7TtFwF3tu0ftH2S/BLdTdF3tOkLDyc5uK2ydTRw6cQ2WUl+uT1vArwL+Eg7dBkwv91jtyew\nN3Cd/Tb5RuuzJNsBl9MtVvBvQ+fbZ1PDaP1WVb9TVXOrai7wAeBvq+pD9tvkG+P341XAryV5Wrvf\n7gXAbfbZ1DBGv/l5ZApo7/F5wO1V9f6eQ5fRDUrQni/tift5ZIozkdS4Jfkn4FvAs5Pck+QY4Fjg\nfUm+A/wtcFw7/R+BrZLcSreS2ser6qZ27Hi6kculdKtwXTmBlzHrjNJvr03yPeAOuj8GfBygqm4F\nFgG3AV8ETqiqNa0q+22C9NNnwJ8DewF/k+5reG4c+kCFfTah+uy3sdhvE6TP34+rgffT/Z92I939\nyJe3quyzCdTnvzU/j0wNvwW8HnhRz/9VLwXOBF6c5E7g99u+n0emiXTTkSVJkiRJGh9HJCVJkiRJ\nfTGRlCRJkiT1xURSkiRJktQXE0lJkiRJUl9MJCVJkiRJfTGRlCSpD+l8M8lLemKvSvLFjVD3J5Lc\n1ZbGvyPJu8ZR5pVJ/nfbfk+St7XtNyT5lQ1tkyRJI9lsshsgSdJ0UlWV5M3Ap5N8le7/0r8FDt+Q\netuX3AO8var+OcmWwB1JLqiq5WO05/OjHHoD8G3g3g1plyRJI3FEUpKkPlXVLcC/AO8A/ga4sKq+\nn2RBkuvaiOKHk2wCkOTcJEuS3Jrkb4bqaV+mfmaS/wBeOexltgQK+K+ec7dr2wcn+XLbfmOSD/QW\nTPIaYH/gktaWpwzifZAkzV4mkpIkrZ93A38EvAT4uyT70SWDv1lV+9ONVM5v555UVfOA5wAvTrJP\nTz33V9Vzq+rTbf/sJDcCy+kS1Af7bVhVXQLcCLymqvavqp+tzwVKkjQap7ZKkrQequqnSS4BflJV\njyX5feD5wJIk0I0oDk1JfW2SY+j+390F2Ae4rR27ZFjVQ1Nbtwa+muQLVXXdoK9HkqR+mEhKkrT+\nft4eAAEWVtVf956QZG/gRODAqnooySeAp/ac8tORKq6qR5J8Dfht4DrgCX4xk+ipI5WRJGmiOLVV\nkqSN48vAq5M8HSDJjkn2ALYBHgEeTrIzcNh4KkuyOXAg8P0WWgYc0Lb/cBxVPAJsPe7WS5LUBxNJ\nSZI2gqq6me6+yS8nuQn4ErAT3cqptwF3ABcC/7aOqobukbwJuAG4rMVPBT6c5HpgPPc8fhz4mIvt\nSJIGIVU12W2QJEmSJE0jjkhKkiRJkvpiIilJkiRJ6ouJpCRJkiSpLyaSkiRJkqS+mEhKkiRJkvpi\nIilJkiRJ6ouJpCRJkiSpLyaSkiRJkqS+/P/DUmb7EYyoAQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11b0e5eb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "grouped = training.groupby(\"YearBuilt\").SalePrice.median().sort_index()\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.bar(grouped.index, grouped)\n",
    "plt.xlabel(\"YearBuilt\")\n",
    "plt.ylabel(\"Median SalePrice\")\n",
    "plt.title(\"Median SalePrice by YearBuilt\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x11b4616d8>"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nHidrnhAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11b1dc748>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "training.plot.scatter(\"GarageArea\", \"SalePrice\")\n",
    "plt.title(\"SalePrice by GarageArea\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x11d36e208>"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11d2685f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "grouped = training.groupby([\"SaleCondition\",\"BldgType\"]).SalePrice.median().unstack()\n",
    "blues = sns.color_palette(\"Blues\", n_colors=10)\n",
    "sns.heatmap(grouped, cmap = blues)\n",
    "plt.title(\"Median Saleprice \\n by SaleCondition and BldgType\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
